이전 글에서 프로그램에서 메시지를 출력해주는 MsgBox에 대해 알아봤습니다. 이번에는 사용자가 입력하는 데이터를 받는 InputBox에 대해 알아보겠습니다. InputBox를 이용하면 문자열을 입력받을 수 있습니다.
1. InputBox 사용 프로시저 작성
우선 엑셀 메뉴에서 개발도구-Visual Basic을 클릭하여 VBE 창을 엽니다.
VBE 창 메뉴에서 삽입-모듈을 클릭하여 모듈을 생성합니다.
모듈 코드 창을 띄우고 [그림 1]과 같이 내용을 입력합니다.
name과 s라는 문자열 변수를 선언하였습니다.
name = Application.InputBox("당신의 이름은 무엇입니까?", "이름입력") =>
InputBox를 열어 사용자로부터 이름을 입력받아 name 변수에 입력하라고 코딩하였습니다.
s = MsgBox(name & "님 안녕하세요~^^", vbOKOnly, "인사") =>
입력받은 이름 뒤에 '님 안녕하세요~^^'를 붙여서 MsgBox 내용에 띄우도록 하였으며
버튼은 [확인] 버튼만 출력되도록 하였습니다.
이제 VBA를 실행하면 먼저 InputBox가 뜨면서 이름 입력을 요청하며 이름입력을 완료하면 MsgBox가 출력됩니다. 결과는 아래 [그림 2]와 [그림 3]을 참조하세요.
InputBox는 원하는 범위의 데이터를 지정할 수도 있습니다. 아래 [그림 4]와 같이 모듈 코딩 창에 입력합니다.
Dim 범위 As Range
Set 범위 = Application.InputBox("평균 계산을 할 데이터를 범위 지정하세요.", "평균", Type:=8)
=> 범위라는 변수를 지정하고 InputBox를 이용하여 사용자로부터 평균값을 구할 데이터 범위를
입력받도록 하였습니다.
MsgBox "평균값은 " & Application.WorksheetFunction.Average(범위) & "입니다."
=> MsgBox를 이용하여 계산된 평균값을 메시지 창으로 출력되도록 하였습니다.
사용자로부터 문자열을 입력받아 원하는 셀에 입력받은 데이터를 기입할 수도 있습니다.
[그림 4]의 코딩에 아래와 같이 추가합니다.
s = Application.InputBox("과목명을 입력하세요.", "과목입력")
Sheets(1).Range("B6").Value = s
변수 s에 사용자가 입력하는 문자열을 저장하고 B6셀에 입력한 문자열을 기입하라는 코딩입니다.
[그림 5]는 과목 입력 InputBox 코딩을 추가한 모습이며 이를 실행하면 [그림 6]과 같은 과목 입력 창이 추가로 출력됩니다.
확인 버튼을 누르면 B6 셀에 '과학'이 입력된 모습을 보실 수 있습니다.
'엑셀 > VBA' 카테고리의 다른 글
VBA 조건문인 IF에 대해 알아보자 (0) | 2021.08.17 |
---|---|
VBA 프로그램 실행 중 발생하는 오류 처리하기 (0) | 2021.08.16 |
VBA 프로그래밍을 위한 기본 사항 확인하기 II (0) | 2021.08.14 |
VBA 프로그래밍을 위한 기본 사항 확인하기 I (0) | 2021.08.13 |
VBA로 셀병합할 때 셀의 내용을 지우지 않고 병합하기 (0) | 2021.08.12 |