본문 바로가기

엑셀/VBA

VBA로 간단한 입력과 출력 실행해보기

반응형

프로그램을 사용하다 보면 많은 대화 상자들을 만납니다. 단순히 결과를 알려주거나 정보를 제공해 주는 대화 상자도 있지만, 데이터를 입력받는 대화 상자도 있습니다. 이번에는 대화 상자를 사용하여 데이터를 입력받고 그 결과를 출력하는 방법에 대해 알아보겠습니다.

 

대화 상자를 사용하기 위해서는 함수를 사용합니다. 

먼저 이들 함수에 대해 알아보겠습니다.

 

1. MsgBox 함수

 

 

 

MsgBox 함수사용자에게 정보나 결괏값을 알려주어 이의 확인이 필요할 때 주로 사용합니다.

MsgBox 함수 사용은 다음과 같습니다.

 

    MsgBox 메시지, 버튼 / 메시지 아이콘, 창 제목

 

 [버튼]

코드 설명
0 vbOkOnly 확인 버튼 생성
1 vbOkCancel 확인, 취소 버튼 생성
2 vbAbortRetryIgnore 중단, 다시 시도, 무시 버튼 생성
3 vbYesNoCancel 예, 아니오, 취소 버튼 생성
4 vbYesNo 예, 아니오 버튼 생성
5 vbRetryCancel 다시 시도, 취소 버튼 생성

 

 [메시지 아이콘]

코드 설명
16 vbCritical 중지 메시지 아이콘 생성
32 vbQuestion 문의 메시지 아이콘 생성
48 vbExclamation 경고 메시지 아이콘 생성
64 vbInformation 정보 메세지 아이콘 생성

 

 [포커스 설정]

코드 설명
0 vbDefaultButton1 첫 번째 버튼에 포커스 설정
256 vbDefaultButton2 두 번째 버튼에 포커스 설정
512 vbDefaultButton3 세 번째 버튼에 포커스 설정
768 vbDefaultButton4 네 번째 버튼에 포커스 설정

 

버튼은 대화 상자에 생성할 버튼의 종류를 선택하는 것이고 메시지 아이콘은 작성한 메시지와 함께 출력될 아이콘의 종류를 선택하는 것입니다. 또한, 포커스 설정은 대화 상자가 출력되었을 때 선택되어 있을 버튼을 결정하는 것으로 바로 엔터키를 쳤을 때 실행되는 버튼을 정하는 것입니다.

 

예제로 MsgBox를 출력해 보겠습니다. 아래와 같이 코딩을 합니다.

 

Sub MsgBox1()

MsgBox "계속하시겠습니까?", 3+48+0, "진행사항"

End Sub

 

코드를 입력하고 실행을 하면 다음과 같은 결과를 얻습니다.

Msgbox_예제_실행_결과
[그림 1] MsgBox_예제_결과_대화상자_출력

[그림 1]에서 보시듯이 '계속하시겠습니까?'라는 메시지와 함께 경고 메시지 아이콘이 함께 출력된 모습을 보실 수 있습니다. 이는 '3+48+0'에서 두 번째 숫자 48이 메시지 아이콘 선택 값으로 vbExclamation에 해당하기 때문입니다. 또한 버튼 선택 번호 '3'은 vbYesNoCancel이므로 예, 아니오, 취소 버튼이 출력되었습니다.

'0'은 vbDefaultButton1으로 첫 번째 버튼에 포커스를 맞추라는 의미입니다. 그래서 [그림 1]에서 '예' 버튼에 포커스가 있는 것을 알 수 있습니다. 이 상태에서 엔터키를 클릭하면 '예' 버튼이 실행됩니다. 입력 시에 숫자 대신 표의 코드값을 입력하여도 됩니다. 그리고 창 맨 위 좌측에 '진행사항'이라는 제목이 표시되었습니다. 

 

 

 

그럼, 대화상자의 버튼을 클릭하면 어떻게 될까요? 

버튼을 클릭하게 되면 반환 값이 발생하게 됩니다. 아래 표는 각 버튼이 클릭되었을 때 반환 값입니다.

코드 설명
1 vbOk 확인 버튼을 클릭했을 때 반환값
2 vbCancel 취소 버튼을 클릭했을 때 반환값
3 vbAbort 중단 버튼을 클릭했을 때 반환값
4 vbRetry 다시 시도 버튼을 클릭했을 때 반환값
5 vbIgnore 무시 버튼을 클릭했을 때 반환값
6 vbYes 예 버튼을 클릭했을 때 반환값
7 vbNo 아니오 버튼을 클릭했을 때 반환값

반환 값의 값이나 코드를 이용하여 버튼이 클릭됐을 때 실행문을 작성하게 됩니다.

 

2. InputBox 함수

 InputBox 함수사용자로부터 데이터를 입력받을 수 있는 대화 상자를 출력합니다.

 InputBox 함수 사용방법은 다음과 같습니다.

 

    InputBox 메시지, 창 제목, 메시지 입력란에 표시할 메시지

 

메시지는 대화 상자에 출력될 메시지를 말하며 창 제목은 대화 상자 좌측 맨 위에 표시되는 제목입니다.

메시지 입력창에 표시할 메시지는 사용자가 입력하는 사각 박스에 어떤 내용이나 형식으로 입력하라는 안내 메시지를 입력할 때 사용합니다. 생략하면 빈 사각 박스만 표시됩니다.

 

예제로 Inputbox( ) 함수를 이용하여 입력받은 데이터가 숫자인지 문자인지를 알려주는 VBA 프로그램을 작성해 보겠습니다.

 

더보기

Public Sub 입력()
Dim i As Variant

i = InputBox("값을 입력해주세요.", "데이터 입력")

If i = "" Then
    MsgBox "값을 입력하지 않으셨습니다."
ElseIf IsNumeric(i) Then
    MsgBox "입력하신 값은 숫자입니다."
Else
    MsgBox "입력하신 값은 문자입니다."
End If
End Sub

 

프로그램을 실행하면 출력되는 창에서 문자 또는 숫자를 입력하면 그 결괏값을 알려줍니다.

프로그램 내용 중에서 IsNumeric( ) 함수는 인수가 숫자인지를 확인하여 숫자이면 참을 숫자가 아니면 거짓을 반환하는 함수입니다.

또한 If ... Then ... Else 문을 사용하였는데 제어문에 대한 내용은 이전 글에서 설명하였습니다.

 

InputBox_예제_실행_결과
[그림 2] InputBox_예제_결과

[그림 2]는 위의 예제 실행 결과 출력된 대화 상자 모습입니다.

반응형