엑셀 VBA에서 MsgBox 함수는 사용자에게 메시지를 표시하고, 버튼을 클릭하여 응답을 받을 수 있도록 하는 기능입니다.
즉, 단순한 메시지 출력부터 사용자 입력 확인까지 다양한 용도로 사용됩니다.
1. 기본 문법
MsgBox "메시지", [버튼 유형], ["제목"]
|
- "메시지" → 메시지 박스에 표시할 텍스트
- [버튼 유형] (선택 사항) → vbOKOnly, vbYesNo, vbYesNoCancel 등 (기본값: vbOKOnly)
- ["제목"] (선택 사항) → 메시지 박스의 제목
2. 기본 메시지 출력
Sub 기본_메시지()
MsgBox "Hello, VBA!"
End Sub
|
📌 "Hello, VBA!" 메시지가 표시됨
📌 사용자가 "확인" 버튼을 클릭하면 메시지 박스가 닫힘
3. 메시지 창에 제목 추가
Sub 제목_추가()
MsgBox "이것은 메시지 창입니다.", vbOKOnly, "알림"
End Sub
|
📌 제목이 "알림"인 메시지 박스 표시
📌 "이것은 메시지 창입니다." 메시지와 "확인" 버튼이 포함됨
4. 여러 개의 줄로 메시지 출력 (vbNewLine)
Sub 줄바꿈_메시지()
MsgBox "첫 번째 줄" & vbNewLine & "두 번째 줄", vbOKOnly, "줄바꿈 예제"
End Sub
|
📌 메시지 창에서 줄바꿈 (vbNewLine)을 사용하여 두 줄로 출력
5. 여러 개의 버튼 추가 (vbYesNo, vbYesNoCancel 등)
버튼 옵션
|
설명
|
vbOKOnly
|
"확인" 버튼만 표시 (기본값)
|
vbYesNo
|
"예", "아니오" 버튼 표시
|
vbYesNoCancel
|
"예", "아니오", "취소" 버튼 표시
|
vbOKCancel
|
"확인", "취소" 버튼 표시
|
vbRetryCancel
|
"다시 시도", "취소" 버튼 표시
|
vbAbortRetryIgnore
|
"중지", "다시 시도", "무시" 버튼 표시
|
📌 사용자 응답 확인 (vbYesNo)
Sub 예_아니오_메시지()
Dim 응답 As Integer
응답 = MsgBox("작업을 진행할까요?", vbYesNo, "확인")
If 응답 = vbYes Then
MsgBox "사용자가 '예'를 선택했습니다."
Else
MsgBox "사용자가 '아니오'를 선택했습니다."
End If
End Sub
|
📌 사용자가 "예"를 클릭하면 "사용자가 '예'를 선택했습니다." 출력
📌 "아니오"를 클릭하면 "사용자가 '아니오'를 선택했습니다." 출력
📌 예/아니오/취소 (vbYesNoCancel)
Sub 예_아니오_취소()
Dim 응답 As Integer
응답 = MsgBox("이 작업을 실행하시겠습니까?", vbYesNoCancel, "확인")
Select Case 응답
Case vbYes
MsgBox "작업을 실행합니다."
Case vbNo
MsgBox "작업을 취소합니다."
Case vbCancel
MsgBox "사용자가 취소를 선택했습니다."
End Select
End Sub
|
📌 "예" 클릭 → "작업을 실행합니다."
📌 "아니오" 클릭 → "작업을 취소합니다."
📌 "취소" 클릭 → "사용자가 취소를 선택했습니다."
6. 아이콘 추가 (vbCritical, vbInformation, vbExclamation, vbQuestion)
아이콘 옵션
|
설명
|
vbCritical
|
❌ 오류 아이콘
|
vbInformation
|
ℹ️ 정보 아이콘
|
vbExclamation
|
⚠️ 경고 아이콘
|
vbQuestion
|
❓ 질문 아이콘
|
📌 경고 메시지 (vbExclamation)
Sub 경고_메시지()
MsgBox "잘못된 입력입니다!", vbExclamation, "경고"
End Sub
|
📌 ⚠️ "경고" 제목과 함께 경고 아이콘이 표시됨
📌 오류 메시지 (vbCritical)
Sub 오류_메시지()
MsgBox "시스템 오류가 발생했습니다.", vbCritical, "오류"
End Sub
|
📌 ❌ "오류" 제목과 함께 오류 아이콘이 표시됨
📌 정보 메시지 (vbInformation)
Sub 정보_메시지()
MsgBox "작업이 완료되었습니다.", vbInformation, "완료"
End Sub
|
📌 ℹ️ "완료" 제목과 함께 정보 아이콘이 표시됨
📌 질문 메시지 (vbQuestion)
Sub 질문_메시지()
MsgBox "파일을 저장하시겠습니까?", vbQuestion, "질문"
End Sub
|
📌 ❓ "질문" 제목과 함께 질문 아이콘이 표시됨
7. 사용자 응답을 변수로 저장
Sub 응답_변수_저장()
Dim 응답 As Integer
응답 = MsgBox("이 작업을 계속하시겠습니까?", vbYesNo, "확인")
If 응답 = vbYes Then
MsgBox "작업을 계속합니다."
Else
MsgBox "작업을 중단합니다."
End If
End Sub
|
📌 사용자가 선택한 버튼에 따라 다른 동작 수행
8. 긴 메시지 표시 (vbNewLine, _ 사용)
Sub 긴_메시지()
MsgBox "이 프로그램은 엑셀 VBA를 활용하여 " & vbNewLine & _
"자동화 작업을 수행하는 기능을 제공합니다." & vbNewLine & _
"사용자의 편의를 위해 다양한 기능이 포함되어 있습니다.", _
vbInformation, "프로그램 소개"
End Sub
|
📌 줄바꿈(vbNewLine)을 활용하여 긴 메시지를 보기 좋게 표시
9. 메시지 박스 타이머 (Application.OnTime)
Sub 타이머_메시지()
Application.OnTime Now + TimeValue("00:00:05"), "자동_닫기"
End Sub
Sub 자동_닫기()
MsgBox "5초 후 자동으로 닫힙니다.", vbInformation, "자동 닫기"
End Sub
|
📌 5초 후 자동으로 메시지 창이 표시됨
📝 정리
기능
|
VBA 코드
|
기본 메시지 출력
|
MsgBox "메시지"
|
제목 추가
|
MsgBox "메시지", vbOKOnly, "제목"
|
줄바꿈 추가
|
"첫 번째 줄" & vbNewLine & "두 번째 줄"
|
예/아니오 버튼
|
MsgBox "질문?", vbYesNo
|
예/아니오/취소 버튼
|
MsgBox "질문?", vbYesNoCancel
|
경고 아이콘 추가
|
MsgBox "경고!", vbExclamation
|
오류 아이콘 추가
|
MsgBox "오류!", vbCritical
|
정보 아이콘 추가
|
MsgBox "완료!", vbInformation
|
질문 아이콘 추가
|
MsgBox "질문?", vbQuestion
|
사용자 응답 변수 저장
|
Dim 응답 As Integer : 응답 = MsgBox(...)
|
🔥 VBA의 MsgBox를 활용하면 사용자와 상호작용할 수 있습니다! 🚀