컴퓨터 공부/엑셀 & VBA

[엑셀vba] Msgbox를 이용해서 메세지 팝업창을 띄워보자!(feat. 줄바꿈, 버튼 형식)

도 박사 2021. 9. 9. 12:11
반응형

프로그램 동작 중 사용자에게 경고 알림 확인 등 메세지 팝업을 띄워서 알려야 하는 경우가 있다

그럴때 사용할 수 있는 함수는 msgbox !

 

메세지 박스 출력 화면


  1. Msgbox 사용법
  2. Msgbox 버튼 선택에 따라 다른 코드 진행
  3. Msgbox 내용 줄바꿈

1. Msgbox 사용법

Sub Msgbox_Test()

    MsgBox "내용", vbOKCancel, "제목"

End Sub

 

msgbox 함수는 Prompt, [buttons], [title], [helpfile], [context] 5가지 인수를 사용할 수 있다.

이 중에서 Prompt는 필수이며 메세지 내용을 나타낸다.

 

나머지는 선택사항

buttons = 버튼 형식 선택

title = 메시지박스 제목

helpfile = 도움말 파일[context 인수를 사용하면 필수 항목)

context = 도움말 항목에 지정된 번호 [helpfile 인수를 사용하면 필수 항목) 

 

buttons 인수에 사용할 수 있는 값은 다음과 같다.

 

buttons 자리에 상수나 값을 넣으면 해당하는 버튼으로 메세지 박스에 노출된다.

필자는 본 예시에서 vbOkCancel 상수를 넣었고 결과 확인, 취소 버튼으로 나타났다.

vbOkCancel 대신 숫자 1을 넣어도 같은 동작을 한다.

 

helpfile, context 인수 사용법은 필요할때 알아봐야겠다 ^^;


2. Msgbox 버튼 선택에 따라 다른 코드 진행

메세지박스의 버튼 선택 결과에 따라 다른 코드를 진행하고 싶을 땐 다음과 같이 하면 된다.

Option Explicit
Sub Msgbox_Test()

    Dim 결과
    
    결과 = MsgBox("내용", vbOKCancel, "제목")
    
    If 결과 = 1 Then '확인 선택
        Debug.Print "확인 선택함"
    
    ElseIf 결과 = 2 Then '취소 선택
        Debug.Print "취소 선택함"
        
    End If
    
End Sub

 

 

선택 결과에 따라 달라지는 코드

 

특정 버튼을 눌렀을 때 어떤 값을 반환하는지는 다음 그림을 통해 확인 할 수 있다.

 


3. Msgbox 내용 줄바꿈

메세지 박스에 내용을 여러줄 넣고 싶을 땐 다음과 같이 해보자.

Sub Msgbox_Test()

    MsgBox "첫번째 줄" & vbCrLf & "두번째 줄" & vbCrLf & "세번째 줄" , vbOKCancel, "제목"
    
End Sub

& vbCrlf  이 녀석을 넣으면 줄바꿈이 된다.

정말 쉽게 해결!


 

 

 

 

 

 

반응형