기초부터 실전까지 VBA 엑셀14 - 메세지 박스 MsgBox
<VBA 엑셀14 - 메시지 박스 MsgBox>
이번에는 엑셀에서 메시지 박스를 띄워보는 방법에 대해 자세히 알아보겠습니다.
메세지 박스 또한 활용성이 매우 높은 코딩입니다.
메세지 박스에서 나오는 Yes / No를 통해서 조건부 함수를 사용할 수 도 있고
사용자에게 경고의 메세지 또는 알림 메시지를 줄 수 도 있습니다.
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] 부분에 넣을 경우 작동합니다.
"표준 버튼" 부분과 "기타" 부분은 거의 사용할 일이 없을 거라 생각합니다.
그룹 | 상수 | 값 | 내용 |
버튼의 종류 | 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 |
위와 같이 입력한 다음 실행하면 다음과 같은 메시지 박스가 나옵니다.
위에서 적은 & 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에 대한 각각의 반응에 대해 조건문을 만든다.
위와 같이 조건문에 대한 활용, 사용자에게 경고의 메시지 등으로 사용할 수 있습니다.
다음에는 반대로 입력할 수 있는 입력 상자(InputBox)에 대해 알아보겠습니다.
'IT 관련 지식 > VBA 공부' 카테고리의 다른 글
기초부터 실전까지 VBA 엑셀16 - 북(Workbooks), 시트(Sheet) 선택 (0) | 2019.11.06 |
---|---|
기초부터 실전까지 VBA 엑셀15 - 입력 상자 InputBox (0) | 2019.11.05 |
기초부터 실전까지 VBA 엑셀13 - 조건문 Select Case (0) | 2019.11.02 |
기초부터 실전까지 VBA 엑셀12 - 조건문 If ~ ElseIf (0) | 2019.10.31 |
기초부터 실전까지 VBA 엑셀10 - 마지막 행 얻기(End) (0) | 2019.10.25 |