기초부터 실전까지 VBA 엑셀14 - 메세지 박스 MsgBox

IT 관련 지식/VBA 공부|2019. 11. 3. 08:55
반응형
728x170

<VBA 엑셀14 - 메시지 박스 MsgBox>

 

이번에는 엑셀에서 메시지 박스를 띄워보는 방법에 대해 자세히 알아보겠습니다.

 

메세지 박스 또한 활용성이 매우 높은 코딩입니다.

 

메세지 박스에서 나오는 Yes / No를 통해서 조건부 함수를 사용할 수 도 있고

 

사용자에게 경고의 메세지 또는 알림 메시지를 줄 수 도 있습니다.

 

더 많은 VBA 자료를 보고 싶다면 ☜ 여기!!


1. MsgBox의 기본형

 

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

 

prompt "반드시 지정합니다." 대화 상자에서 메시지로 표시되는 문자열을 나타내는 문자열 식을 지정합니다.
인수 prompt로 최대 길이는 1 바이트 문자로 1,024 자입니다.
buttons "선택 사항입니다. "표시되는 단추의 종류와 번호, 사용할 아이콘 스타일을 지정할 수 있습니다.
생략하면 인수 buttons 기본값 0이됩니다.
title "선택 사항입니다." 대화 상자의 제목 표시 줄에 표시되는 문자열을 나타내는 문자열 식을 지정합니다.
생략하면 제목 표시 줄에는 응용 프로그램 이름이 표시됩니다.
helpfile "선택 사항입니다." 대화 상자에 상황에 맞는 도움말을 설정하기 위해 사용하는 도움말 파일의 이름을 나타내는 문자열 식을 지정합니다.
이 인수는 표시하는 대화 상자의 설명 도움말을 사용하여 볼 때 지정합니다.
인수 helpfile을 지정한 경우에는 인수 context도 지정해야합니다.
context "선택 사항입니다."
도움말 항목에 지정된 컨텍스트 번호를 나타내는 수식을 지정합니다.
인수 context를 지정한 경우, 인수 helpfile도 지정해야합니다.

 


2. Button 인수에 대한 상수

 

아래의 "상수" 또는 "값"을 위의 [buttons] 부분에 넣을 경우 작동합니다.

 

300x250

"표준 버튼" 부분과 "기타" 부분은 거의 사용할 일이 없을 거라 생각합니다.

그룹 상수 내용
버튼의 종류 vbOKOnly 0 [OK] 버튼만 표시합니다.
vbOKCancel 1 [OK] 버튼과 취소 버튼을 표시합니다.
vbAbortRetryIgnore 2 [중지], [다시 시도]. [무시]의 3 개의 버튼을 표시합니다.
vbYesNoCancel 3 [예], [아니요], [취소]의 3 개의 버튼을 표시합니다.
vbYesNo 4 [예] 버튼과 [아니오] 버튼을 표시합니다.
vbRetryCancel 5 [다시 시도] 및 [취소] 버튼을 표시합니다.
아이콘의 종류 vbCritical 16 경고 메시지 아이콘을 표시합니다.
Windows에서 시스템 오류의 소리 가 들립니다.
vbQuestion 32 문의 메시지 아이콘을 표시합니다.
vbExclamation 48 경고 메시지 아이콘을 표시합니다.
Windows의 메시지 (경고) 소리 가 들립니다.
vbInformation 64 정보 메시지 아이콘을 표시합니다.
Windows의 메시지 (정보) 소리 가 들립니다.
표준 버튼 vbDefaultButton1 0 제 단추가 기본 단추입니다.
vbDefaultButton2 256 제 2 단추가 기본 단추입니다.
vbDefaultButton3 512 제 3 버튼을 표준 단추입니다.
vbDefaultButton4 768 제 4 버튼을 표준 단추입니다.
기타 vbMsgBoxHelpButton 16384 도움말 버튼을 추가합니다.
VbMsgBoxSetForeground 65536 맨 위에있는 창으로 표시합니다.
vbMsgBoxRight 524288 텍스트를 오른쪽 정렬로 표시합니다.
vbMsgBoxRtlReading 1048576 텍스트를 오른쪽에서 왼쪽으로 표시합니다.

 


3. MsgBox 반환 상수

 

각 버튼을 눌렀을 때 어떤 상수를 반환하는지 나타냅니다.

 

이를 활용하여 조건문에 사용할 수 있습니다.

 

상수 설명
vbOK 1 [OK]
vbCancel 2 취소
vbAbort 3 [취소]
vbRetry 4 재시도
vbIgnore 5 무시
vbYes 6
vbNo 7 아니요

 


4. 예문

 

Sub msgbox1()

 MsgBox "메세지를" & vbLf & "표시합니다."
 
End Sub

 

위와 같이 입력한 다음 실행하면 다음과 같은 메시지 박스가 나옵니다.

 

엑셀 vba 메세지 상자

 

위에서 적은 & vbLf & 의 경우 

 

키보드에서 "Enter"를 의미합니다.

 

반드시 & 과 vbLf 사이를 띄워야 합니다.

 

다음 예문을 보죠

 

Sub msgbox2()

Dim rtn As Integer
 
    rtn = MsgBox("메세지 보여요?", vbYesNo + vbQuestion + vbDefaultButton2, "확인")
    
    Select Case rtn '누른 버튼을 확인하는 조건문
    
        Case vbYes
            MsgBox "예를 눌렀습니다."
        Case vbNo
            MsgBox "아니요를 눌렀습니다."
    End Select
 
End Sub

위의 구문을 실행하면 다음과 같은 메시지 박스가 나옵니다.

 

 

여기서 "예"를 누를 경우

 

 

"아니오"를 눌렀을 경우

 

 

위의 구문을 조금 해석해보자면 

 

Sub msgbox2() 

Dim rtn As Integer 
  
    rtn = MsgBox("메세지 보여요?", vbYesNo + vbQuestion + vbDefaultButton2, "확인") 
     
    Select Case rtn '누른 버튼을 확인하는 조건문 
     
        Case vbYes 
            MsgBox "예를 눌렀습니다." 
        Case vbNo 
            MsgBox "아니요를 눌렀습니다." 
    End Select 
  
End Sub 

① vbYesNo로 Yes / No 버튼을 만든다

 

② vbQuestion으로 Q 마크를 만든다.

 

③ vbDefaultButton2로 "No"를 기본 버튼으로 선택되게 만든다

- 보시면 실행 시 "No" 버튼에 점선이 되어있는 것 = 선택된 것을 볼 수 있습니다.

 

④ Select Case를 이용하여 Yes / No에 대한 각각의 반응에 대해 조건문을 만든다.

 

msgbox문.txt
0.00MB

 


위와 같이 조건문에 대한 활용, 사용자에게 경고의 메시지 등으로 사용할 수 있습니다.

 

다음에는 반대로 입력할 수 있는 입력 상자(InputBox)에 대해 알아보겠습니다.

 

더 많은 VBA 자료를 보고 싶다면 ☜ 여기!!

반응형

댓글()