VBA – Yes No 메시지 박스(Msgbox)

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Younjung Kim

Last updated on 3월 8, 2023

이 튜토리얼에서는 VBA MsgBox 함수를 사용하여 사용자에게 메시지 상자를 표시하는 방법(예/아니요 메시지 상자 포함)을 다룹니다. InputBoxes에 대한 글도 읽어보실 수 있습니다. 

VBA MsgBox 함수

VBA에서는 간단한 MsgBox를 쉽게 표시할 수 있습니다:

MsgBox "이것이 메시지박스 입니다"

 

단순한 확인 메시지 상자를 표시하는 것 이상으로 다양한 작업을 수행할 수 있습니다. 자세한 내용을 살펴보기 전에 복잡한 예제를 빠르게 살펴보겠습니다…

VBA YesNo 메시지 박스

아래에서는 다음과 같은 메시지 박스를 만들겠습니다:

  • 제목 : “메시지박스 제목”, 프롬프트 : “텍스트”
  • 물음표 아이콘
  • 단순한 “확인”이 아닌 Yes / No 옵션
  • 기본 설정 버튼 = “아니요”
Dim answer As Integer

answer = MsgBox("Text", vbQuestion + vbYesNo + vbDefaultButton2, "Message Box Title")

메시지 상자는 사용자의 선택에 따라 예 또는 아니요를 반환합니다. 그런 다음 선택에 따라 다른 작업을 수행할 수 있습니다:

If answer = vbYes Then
  MsgBox "예"
Else
  MsgBox "아니요"
End If

다음 섹션에서는 메시지 상자를 만들 때 사용할 수 있는 모든 옵션을 보여드리겠습니다. 그런 다음 MsgBox 함수의 구문을 소개하고 마지막으로 다른 메시지 상자 예제를 살펴보겠습니다.

VBA 메시지박스 옵션

아래 이미지를 보시면 메시지 박스를 만들 때 사용할 수 있는 거의 모든 옵션을 볼 수 있습니다. 아이콘과 다양한 버튼에 주목하세요.

vba write messagebox code

프리미엄 VBA 애드인(AutoMacro)의 “메시지 박스 빌더” 의 스크린샷입니다:  메시지박스 빌더를 사용하면 원하는 메시지박스를 빠르게 디자인하고 코드 모듈에 코드를 삽입할 수 있습니다. 또한 다른 많은 코드 빌더, 광범위한 VBA 코드 라이브러리 및 다양한 코딩 도구가 포함되어 있습니다. 모든 VBA 개발자에게 필수품입니다.

MsgBox 함수 구문

MsgBox( 프롬프트, buttons, 제목, 도움말파일, 컨텍스트 )

프롬프트(필수) – 메시지 박스의 텍스트입니다.

버튼 – 표시할 버튼을 선택합니다. 생략하면 ‘확인 전용’이 됩니다. 여기에서 표시할 아이콘과 기본 버튼을 지정할 수도 있습니다.

제목 – 메시지 상자 상단의 제목입니다. 생략하면 현재 애플리케이션의 이름이 표시됩니다(예: Microsoft Excel).

도움말파일 – 용자가 ‘도움말’ 버튼을 클릭할 때 액세스할 수 있는 도움말 파일을 지정합니다. 지정한 경우 컨텍스트(아래)도 추가해야 합니다.

컨텍스트 – 해당 도움말 주제에 할당된 도움말 컨텍스트 번호를 나타내는 숫자 표현식입니다.

도움말 파일 및 컨텍스트 인수는 무시해도 됩니다. 사용하는 것을 본 적이 없습니다.

메시지 박스 제목과 프롬프트 커스터마이징하기

MsgBox 함수를 사용하면 다음과 같이 제목 및 프롬프트 메시지를 사용자 지정할 수 있습니다:

Msgbox "프롬프트",,"제목"

다른 예시입니다:

Sub MsgBoxPromptTitle()
  MsgBox "1단계 완료. 2단계를 실행하려면 확인을 클릭하세요.",,"5단계 중 1단계"
End Sub

중요합니다! 텍스트를 따옴표로 묶는 것을 잊지 마세요.

메시지박스 줄 바꿈

‘vbNewLine’을 사용하여 메시지 상자 프롬프트에 줄 바꿈을 추가할 수도 있습니다.

Sub MsgBoxPromptTitle_NewLine()
  MsgBox "1단계 완료." & vbNewLine & "2단계를 실행하려면 확인을 클릭하세요.", , "5단계 중 1단계"
End Sub

& 기호를 사용하여 텍스트를 결합하는 것을 알 수 있습니다. 텍스트에 &를 사용하는 방법과 줄 바꿈 삽입을 위한 다른 옵션에 대한 자세한 내용은 텍스트 결합에 대한 문서에서 확인할 수 있습니다.

MsgBox 아이콘들

VBA를 사용하면 메시지 상자에 미리 만들어진 네 가지 아이콘 중 하나를 추가할 수 있습니다:

아이콘 상수 아이콘
vbInformation vba information msgbox icon
vbCritical vba critical msgbox icon
vbQuestion vba question msgbox icon
vbExclamation vba exclamation msgbox icon

Icon 상수는 버튼 인수 위치에 배치해야 합니다:

Sub MsgBoxQuestionIcon()
  MsgBox "질문 예시", vbQuestion
End Sub

위의 코드를 실행하면 아래와 같이 질문 아이콘이 있는 기본 ‘OK’ 메시지 상자가 생성됩니다:

문자를 입력하면 VBA 편집기에 사용 가능한 옵션이 아래와 같이 표시되는 것을 확인할 수 있습니다:

vba msgbox syntax

이 기능은 아이콘이나 버튼의 정확한 구문이나 이름을 기억할 필요가 없다는 면에서 유용합니다.

이제 각 메시지 상자 아이콘을 만들어 보겠습니다:

MsgBox 아이콘- 정보

Sub MsgBoxInformationIcon()
  MsgBox "정보 예시", vbInformation
End Sub

 

MsgBox 아이콘- 중요

Sub MsgBoxCriticalIcon()
  MsgBox "중요 예시", vbCritical
End Sub

MsgBox Icons – 질문

Sub MsgBoxQuestionIcon()
  MsgBox "질문 예시", vbQuestion
End Sub

MsgBox 아이콘- 느낌표

Sub MsgBoxExclamationIcon()
  MsgBox "느낌표 예제", vbExclamation
End Sub

 

아래에서는 버튼 레이아웃이 다른 메시지 상자를 생성하는 방법에 대해 설명합니다. 다른 메시지 상자 유형을 선택하는 경우 버튼 뒤에 “+”를 사용하여 아이콘 유형을 추가해야 합니다:

Sub MsgBoxQuestionIcon()
  MsgBox "계속 하시겠습니까?", vbOKCancel + vbQuestion
End Sub

 

MsgBox 변수

지금까지는 주로 기본 ‘확인’ 메시지 상자로 작업했습니다. 확인 메시지 상자에는 옵션이 하나만 있습니다: ‘OK’를 누르면 코드가 계속 실행됩니다. 하지만 다른 버튼 그룹을 지정할 수도 있습니다: 확인/취소, 예/아니요 등 다른 버튼 그룹을 지정할 수도 있습니다.

이 경우 어떤 버튼을 누르느냐에 따라 다른 작업을 수행할 수 있습니다. 예를 살펴보겠습니다.

다음은 우리가 생성할 메시지 상자입니다:

전체 코드는 다음과 같습니다(다음에 자세히 설명하겠습니다):

Sub MsgBoxVariable()

Dim answer As Integer
answer = MsgBox("계속 하시겠습니까?", vbQuestion + vbYesNo)

  If answer = vbYes Then
    MsgBox "예"
  Else
    MsgBox "아니오"
  End If

End Sub

먼저 메시지 상자 출력을 정수 변수에 할당합니다.

Dim answer As Integer

answer = MsgBox("계속 하시겠습니까?", vbQuestion + vbYesNo)

다음으로 If-Else를 사용하여 어떤 버튼을 눌렀는지에 따라 수행할 작업을 결정합니다:

If answer = vbYes Then
  MsgBox "예"
Else
  MsgBox "아니오"
End If

MsgBox 함수는 정수 값(1~7 사이)을 반환하므로 변수를 정수 유형으로 정의합니다. 그러나 정수를 참조하는 대신 상수를 참조할 수 있습니다(예: vbOK, vbCancel 등). 모든 옵션을 보려면 이 표를 참조하세요:

버튼 상수
OK(확인) vbOK 1
Cancel(취소) vbCancel 2
Abort(중단) vbAbort 3
Retry(재시도) vbRetry 4
Ignore(무시) vbIgnore 5
Yes(예) vbYes 6
No(아니요) vbNo 7

이제 각 버튼에 대한 코드를 데모해 보겠습니다:

확인 메시지 박스 – vbOKOnly

이것은 VBA의 표준 메시지 박스입니다.

Sub MsgBox_OKOnly()

Dim answer As Integer
answer = MsgBox("OKOnly 예시", vbOKOnly)

End Sub

확인 취소 메시지 박스 – vbOKCancel

Sub MsgBox_OKCancel()

Dim answer As Integer
answer = MsgBox("확인 취소 예시", vbOKCancel)

  If answer = vbOK Then
    MsgBox "확인"
  Else
    MsgBox "취소"
  End If

End Sub

Yes No 메시지 박스 – vbYesNo

Sub MsgBox_YesNo()

Dim answer As Integer
answer = MsgBox("예 아니요 예시", vbYesNo)

  If answer = vbYes Then
    MsgBox "예"
  Else
    MsgBox "아니요"
  End If

End Sub

예 아니요 취소 메시지박스 – vbYesNoCancel

Sub MsgBox_YesNoCancel()

Dim answer As Integer
answer = MsgBox("예 아니요 취소 예시", vbYesNoCancel)

  If answer = vbYes Then
    MsgBox "예"
  ElseIf answer = vbNo Then
    MsgBox "아니요"
  Else
    MsgBox "취소"
  End If

End Sub

중단 다시시도 무시 메시지박스 – vbAbortRetryIgnore

Sub MsgBox_AbortRetryIgnore()

Dim answer As Integer
answer = MsgBox("중단 다시시도 무시 예시", vbAbortRetryIgnore)

  If answer = vbAbort Then
    MsgBox "중단"
  ElseIf answer = vbRetry Then
    MsgBox "다시시도"
  Else
    MsgBox "무시"
  End If

End Sub

다시시도 취소 메시지박스 – vbRetryCancel

Sub MsgBox_RetryCancel()

Dim answer As Integer
answer = MsgBox("다시시도 취소 예시", vbRetryCancel)

  If answer = vbRetry Then
    MsgBox "다시시도"
  Else
    MsgBox "취소"
  End If

End Sub

VBA 메시지박스 예시

 

매크로 실행 전 메시지박스 확인

이 코드는 매크로를 호출하기 전에 예 아니오 메시지 상자를 표시합니다. 예를 클릭하면 매크로가 호출되고, 아니요를 클릭하면 매크로가 실행되지 않습니다.

Sub Msgbox_BeforeRunning()

  Dim answer As Integer
  answer = MsgBox("매크로를 실행하시겠습니까?", vbQuestion + vbYesNo)

  If answer = vbYes Then Call Macro1

End Sub

예 / 아니요 메시지박스 – Exit Sub

여기서 매크로를 계속 실행할지 여부를 사용자에게 확인합니다. 아니요를 클릭하면 코드가 프로시저를 종료하고, 그렇지 않으면 프로시저가 계속됩니다.

Sub Msgbox_BeforeRunning()

  Dim answer As Integer
  answer = MsgBox("계속 하시겠습니까?", vbQuestion + vbYesNo)

  If answer = vbNo Then Exit Sub
  
  '실행할 코드

End Sub

Access VBA의 메시지박스

위의 모든 예제는 Excel VBA에서와 마찬가지로 Access VBA에서도 똑같이 작동합니다.

 

vba-free-addin

VBA 코드 예시 추가 기능

본 웹사이트에 있는 모든 코드 예시에 쉽게 접근해보세요.

메뉴로 이동하여 클릭만 하면 코드는 모듈에 바로 입력됩니다. .xlam 추가 기능.

(설치가 필요 없습니다!)

무료 다운로드

VBA 코드 예시로 돌아가기