티스토리 뷰
Excel에서 사용자에게 윈도우 창을 이용해서 정보를 출력할 수 있는 기능이 있습니다. MsgBox라는 기능인데요. MsgBox를 통해서 VBA 개발자는 정보를 메시지 창을 통해서 데이터의 현재값을 보여줄 수 있습니다. MsgBox를 실행하면 아래와 같은 윈도우 창을 통해서 값을 확인할 수 있습니다.
또한 MsgBox는 디버깅을 할 때도 많이 사용됩니다. 현재 변수등의 값이 어떻게 이루어 져있는지를 파악하는데 실질적으로 편의성을 제공하고 있습니다.
MsgBox의 함수 원형에 대한 구조는 아래와 같습니다.
Public Function MsgBox( _
ByVal Prompt As Object, _
Optional ByVal Buttons As MsgBoxStyle = MsgBoxStyle.OKOnly, _
Optional ByVal Title As Object = Nothing _
) As MsgBoxResult
총 3개의 인자를 가지고 있는 것을 확인할 수 있는데요. 각 인자에 대해서 살펴보겠습니다.
이름 |
기능 |
Prompt |
메시지에 표시되는 값입니다. |
ByVal |
메시지 버튼의 모양을 나타냅니다. |
ByVal |
메시지 창의 타이틀을 나타냅니다. |
위의 그림을 살펴보면 Prompt 값만 넣어 메시지 창을 띄우고 있습니다. Prompt 값을 통해 창을 띄우게 되면 두번째 인자의 경우 OK버튼만을, Title은 Microsoft Excel이라는 값이 기본 값인 것을 확인할 수 있습니다. 이 부분의 기본값을 변경하기 위해서는 사용자가 직접 필요한 값을 넣으면 됩니다.
메시지 버튼의 모양의 경우 마이크로소프트에서 Enum 형으로 미리 지정이된 값이 있습니다. 메시지 버튼에 대한 값의 목록은 아래와 같습니다.
멤버 | 값 | 설명 |
---|---|---|
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 | 셋째 단추가 기본값입니다. |
vbApplicationModal | 0 | 응용 프로그램이 모달입니다. 현재 사용 중인 응용 프로그램에서 작업을 계속하려면 먼저 메시지 상자에 응답해야 합니다. |
vbSystemModal | 4096 | 시스템이 모달입니다. 메시지 상자에 응답할 때까지 모든 응용 프로그램이 일시 중단됩니다. |
vbMsgBoxSetForeground | 65536 | 메시지 상자 창을 전경 창으로 지정합니다. |
vbMsgBoxRight | 524288 | 텍스트를 오른쪽에 맞춥니다. |
vbMsgBoxRtlReading | 1048576 | 히브리어와 아랍어 시스템에서처럼 오른쪽에서 왼쪽으로 텍스트를 읽도록 지정합니다. |
메시지 박스의 모양을 바꾸기 위해서는 아래와 같이 두번째 인자에 미리 정의된 위의 멤버 값을 지정하면 됩니다. Yes와 No 버튼을 가진 메시지 박스를 만들고자 한다면 아래와 같이 구성할 수 있습니다.
vbYesNo라는 값을 두번째 인자에 넣게 되면 위와 같은 결과를 받을 수 있습니다. 그럼 이 메시지를 본 사용자가 Yes혹은 No를 누르게 된 경우 이에 대한 값을 어떻게 알 수 있을 까요? MsgBox 함수는 사용자의 입력값을 프로그램 상에 리턴하여 값을 확인할 수 있게 해줍니다.
MsgBox의 리턴 값에 대한 값의 목록은 아래와 같습니다.
멤버 | 값 | 내장 상수 값 |
---|---|---|
확인 버튼 클릭 시 | 1 | vbOk |
취소 버튼 클릭 시 | 2 | vbCancel |
중단 버튼 클릭 시 | 3 | vbAbort |
다시 시도 버튼 클릭 시 | 4 | vbRetry |
무시 버튼 클릭 시 | 5 | vbIgnore |
예 버튼 클릭 시 | 6 | vbYes |
아니오 버튼 클릭 시 | 7 | vbNo |
위의 코드를 잠시 변경하여 리턴 값을 출력하는 코드를 구현해보았습니다. Yes 버튼을 누른 경우 아래와 같은 결과를 보여줍니다.
위와 같이 코드상에서 MsgBox 함수의 리턴 값을 받기 위해서는 MsgBox()의 형태로 구현이 되어야 합니다. 반드시 ()를 사용하셔야 합니다.
이 글에서는 Excel의 MsgBox 사용방법에 대해서 알아보았습니다.
이 글이 도움이 되셨나요? 그렇다면 아래의 그림을 클릭해주세요.
'프로그래밍 팁s > Excel(Macro, VBA)' 카테고리의 다른 글
[엑셀 매크로 사용법 - VBA] 문자열 처리(Left, Right, Mid, Len) (2) | 2015.01.20 |
---|---|
[엑셀 매크로 VBA] Call By Reference와 Call By Value (0) | 2015.01.19 |
[엑셀 매크로 VBA] CInt, CBool, CStr을 이용하여 값 변환하기 (0) | 2014.12.08 |
[엑셀 매크로 VBA] Option Explicit(명시적 선언)에 대해서 (0) | 2014.12.08 |
[엑셀 매크로 VBA] IIF 함수에 대해서 (0) | 2014.12.05 |