[엑셀] MsgBox 활용하기

 


처음 VBA를 접할때 제일 재미 있었던 부분이 MsgBox를 활용할 때 였던것 같습니다. 아직도 배워야 할게 엄청 많지만 그때는 VBA를 마치 다 배운듯한 느낌을 받았거든요. ^^

MsgBox 자체로는 크게 어려운게 없습니다. 상황에 맞는 버튼을 넣고 때로는 메시지 내용에 적합한 아이콘을 넣으면 끝입니다. 그 뒤로는 반환되는 값에 따라 적당히 코딩하면 되니깐요.

MsgBox의 버튼종류와 아이콘 그리고 입력시 주의사항 정도만 알아보겠습니다.


MsgBox 설명

변수 = MsgBox(Prompt, Buttons, Title, HelpFile, Context)

대화상자에 메시지를 표시하고 사용자가 선택한 버튼의 값을 반환 합니다.


☞ MsgBox의 인수

    • Prompt : 대화상자에 표시할 메시지, 필수로 입력해야 함
    • Buttons : 대화상자에 표시할 버튼, 아이콘 및 버튼기본값 설정, 선택요소로 생략시 기본값은 0
    • Title : 대화상자의 제목, 선택요소로 생략시 "Microsoft Excel" 표기


MsgBox 버튼

내장상수단추표시
vbOKOnly0[확인]
vbOKCancel1[확인] / [취소]
vbAbortRetryIgnore2[중단] / [다시시도] / [무시]
vbYesNoCancel3[예] / [아니오] / [취소]
vbYesNo4[예] / [아니오]
vbRetryCancel5[다시시도] / [취소]
vbMsgHelpButton16384[도움말] 추가


MsgBox 아이콘

내장상수아이콘설명비고
vbCritical16중요
vbQuestion32질의
vbExclamation48경고
vbInformation64정보


MsgBox 버튼 기본값

MsgBox가 나타날때 처음 선택되는 버튼을 설정하는 기본값입니다.

내장상수설 명
vbDefalutButton10첫번째 단추를 기본값으로 설정
vbDefalutButton2256두번째 단추를 기본값으로 설정
vbDefalutButton3512세번째 단추를 기본값으로 설정
vbDefalutButton4768네번째 단추를 기본값으로 설정


MsgBox 함수의 반환값

MsgBox 버튼을 선택했을때 반환되는 값입니다.

선택버튼내장상수반환값선택버튼내장상수반환값
[확인]vbOK1[무시]vbIgnore5
[취소]vbCancel2[예]vbYes6
[중단]vbAbort3[아니오]vbNo7
[다시시도]vbRetry4   


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가 편하기도 하죠.^^

같이 보면 좋은 글

INPUTBOX
VBA 연산자
동적 드롭다운목록

댓글 쓰기