처음 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 아이콘 종류
내장상수
|
값
|
아이콘설명
|
비고
|
vbCritical |
16
|
중요
|
|
vbQuestion |
32
|
질의
|
|
vbExclamation |
48
|
경고
|
|
vbInformation |
64
|
정보
|
|
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
1. MsgBox 코딩 시 변수를 반환받고자 하는 경우는 인수를 (괄호)로 묶어 주어야 합니다.
2. ②과 같이 (괄호)없이 입력하면 아래와 같이 오류 메세지가 나타납니다.
3. 변수를 반환받지 않고 MsgBox만 나타낼때는 ③ 과 같이 (괄호) 없이 입력합니다.
4. 인수명을 입력하면 인수 입력 순서와 , , 없이 입력 가능합니다.
▶ 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
1. 일반적으로 MsgBox의 반환값을 Select 구문이나 If 구문과 같이 활용하는 경우가 많습니다.
2. 그리고 많은 분들이 코딩시 변수값을 확인하기 위해 사용하기도 합니다. 물론 직접실행창을 이용해도 되지만 간단한 내용의 경우 MsgBox가 편하기도 하죠.^^
| 관련글 보기 |
02 | 03 |
'EXCEL > VBA' 카테고리의 다른 글
엑셀 VBA 배열 선언하기 (0) | 2017.02.04 |
---|---|
엑셀 콤보박스(ActiveX컨트롤)에 리스트 입력방법 (3) | 2017.02.04 |
엑셀 InputBox 함수와 메소드의 차이(VBA 오류의 원인?) (0) | 2017.01.30 |
엑셀 연산자(VBA)의 종류 (0) | 2017.01.30 |
엑셀 콤보박스 - 리스트 범위가 변하는 동적 콤보박스(양식컨트롤) (2) | 2017.01.27 |