엑셀 VBA를 이용해 입력된 데이터베이스에서 특정 자료를 검색하여 필요한 정보를 팝업창으로 보여주는 코드입니다.
이 코드를 제작한 이유는 1,000개를 관리하여야 할 물품이 있다고 가정하고 이 물품을 담당하는 사람이나 지점, 물품의 제조 연월일, 배송일, 유통 기간 등을 미리 입력한 후 특정 물건에 대한 자료가 필요할 경우 검색하여 가독성을 증가시킬 수 있기 때문입니다(실제 사용한 내용은 개인정보를 위해 모두 삭제).
1. 데이터베이스 생성
2. 자료 검색 색상으로 표시
3. VBA를 이용한 메시지 박스 출력
4. VBA를 이용한 오류 박스 출력
엑셀 기본자료 시트 생성

=AND($C3=$D$3,$D$3>0)
=$D$3:$F$3,$B$5:$H$144,$Y$5:$AN$144
설명 : 검색 창과 자료 입력
엑셀 시트 생성 후 원하시는 데이터베이스를 입력하고 위 이미지에 나온 것과 같이 정보 출력 버튼을 미리 만들고, 근무자 검색창 옆 검색어 입력 공간을 생성한 후 조건부 서식에서 검색창과 검색할 구역을 지정합니다(정보 출력 버튼 링크는 차후 메시지 박스 VBA 코드 작성 후 링크).
=AND($C3=$D$3,$D$3>0) (예) : 검색창 지정
=$D$3:$F$3,$B$5:$H$144,$Y$5:$AN$144 (예) : 검색할 영역 지정
정보 출력 버튼은 서식 -> 삽입 -> 단추 양식 -> 매크로 이름에서 미리 작성해 놓은 VBAProject 모듈에서 Public Sub 찾기()의 찾기를 링크하시면 됩니다.
메시지 박스 VBA 코드 작성

Public Sub 찾기()
Dim i As Integer
Dim Kabzeel_SW As Boolean
If Range("D3") = "" Then Exit Sub
For i = 5 To 145
If Range("D3") = Cells(i, 3) Then
MsgBox "※ 근무자명 : " & Cells(i, 3) _
& vbCr & "※ 식별 : " & Cells(i, 4) _
& " ※ 사번 : " & Cells(i, 5) _
& vbCr & "※ 입사일 : " & Cells(i, 6) _
& vbCr & "※ 근무지 : " & Cells(i, 7) _
& vbCr & "※ 근무지점 : " & Cells(i, 8) _
& vbCr & vbCr & " ▶ 시간별 담당 근무자 정보 ◀ " _
& vbCr & vbCr & " 08:00~08:30 : " & Cells(i, 25) _
& vbCr & " 08:33~09:03 : " & Cells(i, 26) _
& vbCr & " 09:06~09:36 : " & Cells(i, 27) _
& vbCr & " 09:39~10:09 : " & Cells(i, 28) _
& vbCr & " 10:14~10:44 : " & Cells(i, 29) _
& vbCr & " 10:47~11:17 : " & Cells(i, 30) _
& vbCr & " 11:20~11:50 : " & Cells(i, 31) _
& vbCr & " 점심 : " & Cells(i, 32) _
& vbCr & vbCr & " 13:00~13:30 : " & Cells(i, 33) _
& vbCr & " 13:33~14:03 : " & Cells(i, 34) _
& vbCr & " 14:06~14:36 : " & Cells(i, 35) _
& vbCr & " 14:39~15:09 : " & Cells(i, 36) _
& vbCr & " 15:14~15:44 : " & Cells(i, 37) _
& vbCr & " 15:47~16:17 : " & Cells(i, 38) _
& vbCr & " 16:20~16:50 : " & Cells(i, 39) _
& vbCr & " 저녁 : " & Cells(i, 40) _
& vbCr & vbCr & " Copyright ⓒ 2025 by 갑스엘인포 ", vbOKOnly, "☞ 근무자 정보-갑스엘인포"
Kbazeel_SW = True
End If
Next i
End Sub
설명 : 메시지 박스 출력
Dim Kabzeel_SW As Boolean : 참이나 거짓 변수 선언
If Range(“D3”) = “” Then Exit Sub : 검색어 없으면 버튼 눌러도 무응답 종료
For i = 5 To 145 : 반복문 카운트 변수의 시작과 끝
If Range(“D3”) = Cells(i, 3) Then : 검색과 셀 내용이 같으면 실행
Cells(i, 4) ~ Cells(i, 30) : 출력할 For 문 영역
Next i : 반복문 끝
나머지 부분은 복사 후 매크로를 실행하면 쉽게 이해되는 부분이며, 궁금한 코드는 검색하여 해결할 수 있습니다.
Cells(i, 3) 3번은 엑셀 시트의 행 번호입니다.
_(언더바)는 길어지는 코드를 다음 행으로 이동 작업
& vbCr & : 다음 줄 <br> 기능
정보가 없으면 박스 출력

If Kabzeel_SW = False Then
MsgBox "찾으려는 근무자 정보가 없습니다."
End If
설명 : 오류 메시지 박스 출력
If Kabzeel_SW = False Then : 변수 검색 내용이 Cells 3열 기준으로 같은 내용이 없을 경우 출력 MsgBox 내용 출력 (If Range(“D3”) = Cells(i, 3) Then)
코드 설명이 잘못된 부분이 있을수 있습니다