티스토리 뷰

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 사용방법에 대해서 알아보았습니다.

이 글이 도움이 되셨나요? 그렇다면 아래의 그림을 클릭해주세요.




댓글