프로젝트 및 실습/VBA

[VBA] MsgBox 사용법

jooona 2022. 8. 3. 19:34
반응형

VBA를 이용해 개발을 하다 보면 원하는 메시지를 출력하고, 또 사용자의 선택을 받아오기 위해 MsgBox를 자주 사용하게 됩니다. 오늘은 이 MsgBox에 대해 알아보겠습니다.

 

 

사용법

 

MsgBox는 VBA에서 기본적으로 제공하는 함수로, 사용법은 다음과 같습니다.

 

MsgBox(prompt, [, buttons] [, title] [, helpfile, context])

 

Parameter로 사용하는 값들 중 필수적으로 입력해야 할 요소는 prompt 밖에 없으며, 나머지는 모두 옵션입니다.

 

prompt: MsgBox에 띄울 메시지 문자열 (필수 값)

buttons: MsgBox에 표시할 버튼과 아이콘

title: MsgBox 창에 표시할 제목

helpfile: 도움말

context: 도움말 파일의 context id

 

 

Buttons Option

 

Buttons 옵션을 사용하고자 한다면, 다음 중 하나를 골라 사용하시면 됩니다.

 

Constant Value Desciption
vbOKOnly 0 확인 버튼만 존재
vbOKCancel 1 확인, 취소 버튼 
vbAbortRetryIgnore 2 중단, 다시 시도, 무시 버튼 
vbYesNoCancel 3 예, 아니오, 취소 버튼 
vbYesNo 4 예, 아니오 버튼
vbRetryCancel 5 다시 시도, 취소 버튼
vbCritical 16 치명적 오류 표시, 확인 버튼 
vbQuestion 32 물음표 표시, 확인 버튼
vbExclamation 48 주의 표시, 확인 버튼
vbInformation 64 정보 표시, 확인 버튼
vbDefaultButton1 0 첫번째 단추 선택이 기본값    
vbDefaultButton2 256 두번째 단추 선택이 기본값  
vbDefaultButton3 512 세번째 단추 선택이 기본값  
vbDefaultButton4 768 네번째 단추 선택이 기본값
vbSystemModal 4096 시스템 모달 메시지 
vbMshBoxHelpButton 16384 확인, 도움말 버튼  

 

코드에는 [, buttons]의 자리에 Constant 또는 Value를 입력하시면 됩니다.  

 

Ex1) 

Call MsgBox("This is MsgBox", vbCritical)

 

 

Ex2)

Call MsgBox("This is MsgBox", 2)

 

 

Return Value

 

개발자의 니즈에 따라 여러 버튼을 지원하는 것을 알 수 있었는데요, 그렇다면 사용자가 어떤 버튼을 눌렀는지도 알 수 있어야겠죠? 각 버튼을 눌렀을 때마다 다른 Return Value를 반환함으로써 이를 구분합니다.

 

Constant Value Button Clicked
vbOK 1 OK
vbCancel 2 Cancel
vbAbort 3 Abort
vbRetry 4 Retry
vbIgnore 5 Ignore
vbYes 6 Yes
vbNo 7 No

  

Return Value로는 Constant 값과 Value 값을 모두 반환됩니다. 예를 들면, OK 버튼을 누르면 vbOK와 1을 반환하고, Retry 버튼을 누르면 vbRetry와 4를 반환합니다. 둘 중 원하는 값을 사용하시면 됩니다. 

 

다음과 같이 사용할 수 있겠죠.

 

Sub MsgBox_Example()
    
    If MsgBox("Do you want to Continue?", vbYesNo) = 1 Then
        'Continue Code
    Else
        'Cancel Code
    End If
    
End Sub

 

다음과 같이 작성해도 똑같이 돌아갑니다.

 

Sub MsgBox_Example()
    
    If MsgBox("Do you want to Continue?", vbYesNo) = vbYes Then
        'Continue Code
    Else
        'Cancel Code
    End If
    
End Sub

 

반응형

'프로젝트 및 실습 > VBA' 카테고리의 다른 글

[VBA] IIf Function  (0) 2022.08.04
[VBA] Error Handling  (0) 2022.08.03
[VBA] Optional Arguments  (0) 2022.08.02
[VBA] Do While과 Do Until  (0) 2022.08.02
[VBA] Select Case Construct (Switch문)  (0) 2022.08.02