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 코드 예시로 돌아가기

AI in the VBA Editor!

AutoMacro is the ultimate VBA add-in.

AI, Generators, UI Builders, Code Library, and More!

Learn More

AutoMacro: AI in the VBA Editor!

Learn More