처음 VBA를 접할때 제일 재미 있었던 부분이 MsgBox를 활용할 때 였던것 같습니다. 아직도 배워야 할게 엄청 많지만 그때는 VBA를 마치 다 배운듯한 느낌을 받았거든요. ^^
MsgBox 자체로는 크게 어려운게 없습니다. 상황에 맞는 버튼을 넣고 때로는 메시지 내용에 적합한 아이콘을 넣으면 끝입니다. 그 뒤로는 반환되는 값에 따라 적당히 코딩하면 되니깐요.
MsgBox의 버튼종류와 아이콘 그리고 입력시 주의사항 정도만 알아보겠습니다.
MsgBox 설명
변수 = MsgBox(Prompt, Buttons, Title, HelpFile, Context)
대화상자에 메시지를 표시하고 사용자가 선택한 버튼의 값을 반환 합니다.
☞ MsgBox의 인수
- Prompt : 대화상자에 표시할 메시지, 필수로 입력해야 함
- Buttons : 대화상자에 표시할 버튼, 아이콘 및 버튼기본값 설정, 선택요소로 생략시 기본값은 0
- Title : 대화상자의 제목, 선택요소로 생략시 "Microsoft Excel" 표기
MsgBox 버튼
내장상수 | 값 | 단추표시 |
---|---|---|
vbOKOnly | 0 | [확인] |
vbOKCancel | 1 | [확인] / [취소] |
vbAbortRetryIgnore | 2 | [중단] / [다시시도] / [무시] |
vbYesNoCancel | 3 | [예] / [아니오] / [취소] |
vbYesNo | 4 | [예] / [아니오] |
vbRetryCancel | 5 | [다시시도] / [취소] |
vbMsgHelpButton | 16384 | [도움말] 추가 |
MsgBox 아이콘
MsgBox 버튼 기본값
MsgBox가 나타날때 처음 선택되는 버튼을 설정하는 기본값입니다.
내장상수 | 값 | 설 명 |
---|---|---|
vbDefalutButton1 | 0 | 첫번째 단추를 기본값으로 설정 |
vbDefalutButton2 | 256 | 두번째 단추를 기본값으로 설정 |
vbDefalutButton3 | 512 | 세번째 단추를 기본값으로 설정 |
vbDefalutButton4 | 768 | 네번째 단추를 기본값으로 설정 |
MsgBox 함수의 반환값
MsgBox 버튼을 선택했을때 반환되는 값입니다.
선택버튼 | 내장상수 | 반환값 | 선택버튼 | 내장상수 | 반환값 |
---|---|---|---|---|---|
[확인] | vbOK | 1 | [무시] | vbIgnore | 5 |
[취소] | vbCancel | 2 | [예] | vbYes | 6 |
[중단] | vbAbort | 3 | [아니오] | vbNo | 7 |
[다시시도] | vbRetry | 4 |
MsgBox 활용
코드입력 시 주의사항
Sub Msgbox예제1()
Dim 버튼선택 As Byte
버튼선택 = MsgBox("안녕하세요?", vbYesNo + vbQuestion, "메세지박스 예제1") '---①
버튼선택 = MsgBox "안녕하세요?", , "메세지박스" '---② 입력오류
MsgBox "안녕하세요?", , "메세지박스" '---③
MsgBox("안녕하세요?", , "메세지박스") '---④ 입력오류
MsgBox prompt:="안녕하세요?", Title:="메세지박스", Buttons:=16 '---⑤
End Sub
- MsgBox 코딩 시 변수를 반환받고자 하는 경우는 인수를 (괄호)로 묶어 주어야 합니다.
- ②과 같이 (괄호)없이 입력하면 아래와 같이 오류 메세지가 나타납니다.
- 변수를 반환받지 않고 MsgBox만 나타낼때는 ③ 과 같이 (괄호) 없이 입력합니다.
- 인수명을 입력하면 인수 입력 순서와 , , 없이 입력 가능합니다.
Msgbox 활용
Sub Msgbox예제2()
Dim 버튼선택 As Byte
버튼선택 = MsgBox("어느 버튼을 선택하겠습니까?", vbYesNoCancel + vbQuestion, "메세지박스 예제2")
Select Case 버튼선택
Case vbYes: MsgBox "[예] 버튼 선택"
Case vbNo: MsgBox "[아니오] 버튼 선택"
Case vbCancel: MsgBox "[취소] 버튼 선택"
End Select
End Sub
- 일반적으로 MsgBox의 반환값을 Select 구문이나 If 구문과 같이 활용하는 경우가 많습니다.
- 그리고 많은 분들이 코딩시 변수값을 확인하기 위해 사용하기도 합니다. 물론 직접실행창을 이용해도 되지만 간단한 내용의 경우 MsgBox가 편하기도 하죠.^^
댓글 쓰기