Microsoft Excel VBA의 MsgBox
VBA는 Visual Basic for Applications의 줄임말로 개발자가 Microsoft Office 응용 프로그램을 사용하면서 다양한 기능을 제공하는 프로그래밍 언어입니다.
이번 글에서는 VBA의 MsgBox 기능에 대해 알아보겠습니다.
VBA의 ‘MsgBox’
MsgBox는 코드가 실행될 때 메시지 상자를 표시하는 VBA의 기능입니다. 메시지 상자가 표시되면 코드가 중지됩니다.
그런 다음 사용자의 입력을 기다리고 그에 따라 실행을 계속합니다. 이 대화 상자에서 메시지를 사용자 지정하고 사용자가 선택한 옵션에 따라 코드가 동작하도록 할 수 있습니다.
VBA에서 MsgBox 함수의 구문은 다음과 같습니다.
MsgBox (prompt, [ buttons, ] [ title, ] [ helpfile, context ])
MsgBox 함수는 위에 표시된 것처럼 여러 인수를 사용합니다. 아래에 설명되어 있습니다.
-
prompt: 이 인수는 대화 상자에서 메시지로 표시되는String유형 표현식을 나타냅니다.프롬프트에 표시할 수 있는 문자 수에는 제한이 있습니다. 즉, 문자가 차지하는 공간에 따라 약 1024자입니다.prompt인수를 사용하여 변수 값을 표시할 수도 있습니다. 줄 사이에 캐리지 리턴 또는 줄 바꿈 문자를 사용하여 메시지를 별도의 줄로 나눌 수도 있습니다. -
버튼: 이 인수에는 숫자 값이 있습니다. 표시할 버튼의 종류와 아이콘의 스타일을 지정하는데 사용합니다.MsgBox의 버튼 수를 선택할 수도 있습니다.buttons인수의 기본값은0이며OK버튼만 표시합니다. 이 기사에서는 다양한 유형의 버튼과 아이콘에 대해 설명합니다. -
제목: 제목 표시줄에 표시되는MsgBox의 캡션을 지정하는문자열유형 인수를 나타냅니다. 이 인수를 작성하지 않으면 응용 프로그램의 이름이 여기에 표시됩니다(예:Microsoft Excel). -
helpfile: 여기에서 사용자가도움말버튼을 클릭할 때 도움이 되는문자열표현식으로 도움말 파일을 지정할 수 있습니다. 이 버튼은 아래에서 언급할 특정 코드를 사용하여 표시됩니다.helpfile인수를 지정하면context도 제공해야 합니다. -
컨텍스트: 도움말 작성자가 도움말 항목에 할당하는 도움말 컨텍스트 번호입니다.context인수를 지정하는 경우helpfile도 제공해야 합니다.
참고:
prompt인수만 필요합니다. 나머지는 선택 사항으로 지정할 수 있습니다.
VBA MsgBox 버튼
위에서 언급했듯이 MsgBox 함수의 buttons 인수는 대화 상자에 표시되는 버튼의 수와 유형을 명시할 수 있습니다. 이는 버튼 상수 또는 해당 값을 지정하여 수행됩니다.
일반적인 유형의 버튼 설정은 아래에 요약되어 있습니다.
vbOKOnly: 이 버튼의 값은0입니다.확인버튼만 표시하는 데 사용됩니다.vbOKCance: 이 버튼의 값은1입니다.확인및취소버튼이 모두 표시됩니다.vbAbortRetryIgnore: 값은2입니다.Abort,Retry및Ignore버튼이 표시됩니다.vbYesNoCance: 값은3입니다.예,아니오및취소버튼이 표시됩니다.vbYesNo: 값이4인 버튼입니다.예및아니오버튼이 표시됩니다.vbRetryCance: 이 버튼의 값은5입니다.재시도및취소버튼이 표시됩니다.vbDefaultButton1: 첫 번째 버튼이 기본으로 설정됩니다. 숫자를 변경하면 기본 버튼이 변경됩니다. 예를 들어vbDefaultButton2는 두 번째 버튼이 기본값임을 의미합니다. 값도 각각 변경됩니다.vbMsgBoxHelpButton: 이에 대한 값은16384입니다.도움말버튼이 표시됩니다. 이를 사용할 때helpfile및context인수를 지정해야 합니다. 그렇지 않으면 작동하지 않습니다.
VBA MsgBox 반환 값
MsgBox 함수는 누른 버튼에 따라 정수 유형 값을 반환합니다. 반환되는 해당 숫자 값이 있는 7개의 반환 값 상수가 있습니다.
vbOK동사 취소vb중단vb재시도vb무시vb예vb아니오
이러한 숫자 값을 변수에 저장하고 그에 따라 코드에서 작업을 수행할 수 있습니다.
VBA MsgBox 아이콘
VBA MsgBox에 표시되는 아이콘을 사용자 정의할 수 있습니다. 다음과 같은 유형일 수 있습니다.
-
vb크리티컬
-
vb질문
-
동사 감탄사
-
동사 정보
예 1: 예/아니요 MsgBox
MsgBox 기능을 사용하는 방법을 보여주는 몇 가지 샘플 코드를 살펴보겠습니다. Yes 및 No 버튼을 표시하는 Yes/No MsgBox의 예를 제공합니다.
이에 대한 코드는 다음과 같습니다.
Sub YesNoMsgBox()
MsgBox "Still Want To Continue?", vbQuestion + vbYesNo
End Sub

예 2: 경고 MsgBox
Abort, Retry 또는 Ignore 옵션과 함께 경고 메시지를 표시하는 MsgBox의 예를 살펴보겠습니다. 또한 vbNewLine 및 title 인수의 사용법을 보여줍니다.
Sub WarningMsgBox()
MsgBox "An exception occured" & vbNewLine & "Choose what you want to do", vbExclamation + vbAbortRetryIgnore, "Exception"
End Sub

예 3: MsgBox를 변수에 할당
위의 예에서 버튼을 눌러도 특별히 수행되는 작업은 없습니다. 그러나 사용자가 선택한 버튼에 따라 코드의 동작 과정을 변경하려면 MsgBox 반환 값을 변수에 저장해야 합니다.
아래 코드를 사용하여 어떻게 할 수 있는지 봅시다.
Sub MsgBoxExample()
Dim result As Integer
result = MsgBox("Do you want to continue?", vbYesNo + vbQuestion)
If result = vbYes Then ' Or result == 6
MsgBox "You clicked Yes"
End If
If result = vbNo Then ' Or result == 7
MsgBox "You clicked No"
End If
End Sub
이 매크로를 실행하면 다음 MsgBox가 표시됩니다.

예를 클릭하면 이 MsgBox가 표시됩니다.

마찬가지로 아니오를 클릭하면 다음 MsgBox가 표시됩니다.

결론
이것은 MsgBox 기능과 VBA를 사용하여 사용자 지정하는 다양한 방법에 대한 논의를 요약한 것입니다. 계속 공부하다!
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub