Microsoft Excel VBA의 MsgBox

Bilal Shahid 2024년2월15일
  1. VBA의 ‘MsgBox’
  2. 예 1: 예/아니요 MsgBox
  3. 예 2: 경고 MsgBox
  4. 예 3: MsgBox를 변수에 할당
  5. 결론
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 함수는 위에 표시된 것처럼 여러 인수를 사용합니다. 아래에 설명되어 있습니다.

  1. prompt: 이 인수는 대화 상자에서 메시지로 표시되는 String 유형 표현식을 나타냅니다. 프롬프트에 표시할 수 있는 문자 수에는 제한이 있습니다. 즉, 문자가 차지하는 공간에 따라 약 1024자입니다.

    prompt 인수를 사용하여 변수 값을 표시할 수도 있습니다. 줄 사이에 캐리지 리턴 또는 줄 바꿈 문자를 사용하여 메시지를 별도의 줄로 나눌 수도 있습니다.

  2. 버튼: 이 인수에는 숫자 값이 있습니다. 표시할 버튼의 종류와 아이콘의 스타일을 지정하는데 사용합니다. MsgBox의 버튼 수를 선택할 수도 있습니다.

    buttons 인수의 기본값은 0이며 OK 버튼만 표시합니다. 이 기사에서는 다양한 유형의 버튼과 아이콘에 대해 설명합니다.

  3. 제목: 제목 표시줄에 표시되는 MsgBox의 캡션을 지정하는 문자열 유형 인수를 나타냅니다. 이 인수를 작성하지 않으면 응용 프로그램의 이름이 여기에 표시됩니다(예: Microsoft Excel).

  4. helpfile: 여기에서 사용자가 도움말 버튼을 클릭할 때 도움이 되는 문자열 표현식으로 도움말 파일을 지정할 수 있습니다. 이 버튼은 아래에서 언급할 특정 코드를 사용하여 표시됩니다.

    helpfile 인수를 지정하면 context도 제공해야 합니다.

  5. 컨텍스트: 도움말 작성자가 도움말 항목에 할당하는 도움말 컨텍스트 번호입니다. context 인수를 지정하는 경우 helpfile도 제공해야 합니다.

참고: prompt 인수만 필요합니다. 나머지는 선택 사항으로 지정할 수 있습니다.

VBA MsgBox 버튼

위에서 언급했듯이 MsgBox 함수의 buttons 인수는 대화 상자에 표시되는 버튼의 수와 유형을 명시할 수 있습니다. 이는 버튼 상수 또는 해당 값을 지정하여 수행됩니다.

일반적인 유형의 버튼 설정은 아래에 요약되어 있습니다.

  1. vbOKOnly: 이 버튼의 값은 0입니다. 확인 버튼만 표시하는 데 사용됩니다.
  2. vbOKCance: 이 버튼의 값은 1입니다. 확인취소 버튼이 모두 표시됩니다.
  3. vbAbortRetryIgnore: 값은 2입니다. Abort, RetryIgnore 버튼이 표시됩니다.
  4. vbYesNoCance: 값은 3입니다. , 아니오취소 버튼이 표시됩니다.
  5. vbYesNo: 값이 4인 버튼입니다. 아니오 버튼이 표시됩니다.
  6. vbRetryCance: 이 버튼의 값은 5입니다. 재시도취소 버튼이 표시됩니다.
  7. vbDefaultButton1: 첫 번째 버튼이 기본으로 설정됩니다. 숫자를 변경하면 기본 버튼이 변경됩니다. 예를 들어 vbDefaultButton2는 두 번째 버튼이 기본값임을 의미합니다. 값도 각각 변경됩니다.
  8. vbMsgBoxHelpButton: 이에 대한 값은 16384입니다. 도움말 버튼이 표시됩니다. 이를 사용할 때 helpfilecontext 인수를 지정해야 합니다. 그렇지 않으면 작동하지 않습니다.

VBA MsgBox 반환 값

MsgBox 함수는 누른 버튼에 따라 정수 유형 값을 반환합니다. 반환되는 해당 숫자 값이 있는 7개의 반환 값 상수가 있습니다.

  1. vbOK
  2. 동사 취소
  3. vb중단
  4. vb재시도
  5. vb무시
  6. vb예
  7. vb아니오

이러한 숫자 값을 변수에 저장하고 그에 따라 코드에서 작업을 수행할 수 있습니다.

VBA MsgBox 아이콘

VBA MsgBox에 표시되는 아이콘을 사용자 정의할 수 있습니다. 다음과 같은 유형일 수 있습니다.

  1. vb크리티컬

    중요 아이콘

  2. vb질문

    질문 아이콘

  3. 동사 감탄사

    느낌표 아이콘

  4. 동사 정보

    정보 아이콘

예 1: 예/아니요 MsgBox

MsgBox 기능을 사용하는 방법을 보여주는 몇 가지 샘플 코드를 살펴보겠습니다. YesNo 버튼을 표시하는 Yes/No MsgBox의 예를 제공합니다.

이에 대한 코드는 다음과 같습니다.

Sub YesNoMsgBox()

MsgBox "Still Want To Continue?", vbQuestion + vbYesNo

End Sub

Yes/No MsgBox

예 2: 경고 MsgBox

Abort, Retry 또는 Ignore 옵션과 함께 경고 메시지를 표시하는 MsgBox의 예를 살펴보겠습니다. 또한 vbNewLinetitle 인수의 사용법을 보여줍니다.

Sub WarningMsgBox()

MsgBox "An exception occured" & vbNewLine & "Choose what you want to do", vbExclamation + vbAbortRetryIgnore, "Exception"

End Sub

경고 MsgBox

예 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가 표시됩니다.

Yes MsgBox

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

No MsgBox

결론

이것은 MsgBox 기능과 VBA를 사용하여 사용자 지정하는 다양한 방법에 대한 논의를 요약한 것입니다. 계속 공부하다!

작가: Bilal Shahid
Bilal Shahid avatar Bilal Shahid avatar

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