VBA 에서 InputBox 함수는 사용자로부터 입력을 받을 때 사용하는 함수로, 입력 필드와 메시지를 표시합니다. 이 함수를 사용하여 사용자로부터 문자열, 숫자 또는 날짜와 같은 정보를 입력 받을 수 있습니다. InputBox 함수를 사용하면 사용자로부터 다양한 유형의 입력을 받을 수 있으며, 이러한 입력을 프로그램에서 활용하여 다양한 작업을 수행할 수 있습니다.
▼ 문법은 다음과 같습니다. 각 인수별로 Input 박스를 구성하는 값들이 들어갑니다. 리턴받은 값은 true/false 중 하나이며 Input 박스에서 확인을 누르면 true, 취소를 누르면 false 입니다. 그리고 마지막에 Type 값은 입력 받는 데이터 형식을 지정할 수 있습니다. 형식에 맞지 않으면 에러 메시지를 출력하고 더 이상 진행이 안됩니다. 데이터 유효성 체크할 때 아주 유용합니다.
변수 = InputBox(Prompt, Title, Default, Left, Top, HelpFile, HelpContextID, Type) |
l Prompt : Input 박스의 입력란에 표시되는 제목을 말한다. 보통 입력 받을 내용에 대해 언급한다.
l Title : Input 박스의 제목을 입력한다. 박스 상단 바에 글자가 들어간다.
l Default : Input 박스가 뜰 때 입력박스안에 들어가는 기본값을 나타낸다.
l Left : Input 박스가 화면에서 뜰 때 x 좌표값을 나타낸다.
l Top : Input 박스가 화면에서 뜰 때 y 좌표값을 나타낸다.
l Type : 입력 받을 데이터의 종류를 지정한다. type 에서 지정한 데이터가 입력되지 않으면 에러 메시지를 띄운다. type 의 상세내용은 아래 참조
▼ Type 에 어떤 값이 들어가느냐에 따라 Input 에 받아 들일 수 있는 값이 정해 집니다. 만약 내가 숫자만 필요하다고 하면 Type:=1 이 되겠죠. 만약 여러 형태의 데이터를 모두 허용하고 싶다면 숫자를 더 해주면 됩니다. 그러니까 텍스트와 숫자 둘 다 받아들이고 싶다면 1+2 를 해서 3을 입력하면 됩니다.
l 0 : 수식 입력
l 1 : 숫자 입력
l 2 : 텍스트 입력
l 4 : True / False
l 8 : 셀 영역
l 16 : #N/A 같은 에러
l 64 : 배열
◎ 예제 1 : 숫자만 입력 받기 |
▼ 아래 소스는 Type 을 1 로 지정했기 때문에 숫자만 입력해야 합니다. 그리고 확인을 눌렀을 때만 로직을 진행할 수 있도록 If Response <> False Then 를 집어 넣었습니다. 취소를 누르면 False 가 리턴 되기 때문에 지나가겠죠.
Sub UsingInputPrint()
Dim Response As Integer
' Run the Input Box.
Response = Application.InputBox("숫자만입력하세요.", _
"숫자입력", , 250, 75, "", , 1)
' 확인을 눌렀을 때 진행
If Response <> False Then
' A1 에 입력한 값 표시
Range("a1").Value = Response
End If
End Sub
◎ 예제 2: 문자열 입력 |
▼ 예제에서 사용한 Type=0 은 사용자로부터 입력 받은 값은 모두 문자열로 반환합니다.
Sub InputBoxType0()
Dim strInput As String
strInput = Application.InputBox(Prompt:="문자열을 입력하세요.", Type:=0)
MsgBox "입력한 문자열: " & strInput
End Sub
◎ 예제 3: 논리값 반환 |
▼ Type=4 는 논리값을 반환합니다. 만약 논리값인 True/False 중 하나가 아니면 에러가 발생합니다. 논리값을 입력받고 싶을 때 type=4 를 사용합니다.
Sub InputBoxType4()
Dim boolInput As Boolean
boolInput = Application.InputBox(Prompt:="논리값을 입력하세요(참/거짓).", Type:=4)
MsgBox "입력한 논리값: " & boolInput
End Sub
논리값이 아니면 그림처럼 오류가 발생합니다. “논리값이 잘못되었습니다. “ 라고 메시지가 뜹니다.
논리값은 true/false 중 하나입니다. 둘 중 하나를 입력해야 제대로 값을 리턴받을 수 있습니다.
◎ 예제 4 : 셀 참조 반환 |
▼ Type=8 은 수식을 셀 주소를 입력 받을 수 있습니다. 만약 셀 주소가 아닌 다른 값이 입력되면 에러가 발생합니다.
Sub InputBoxType8()
Dim rngInput As Range
Set rngInput = Application.InputBox(Prompt:="셀을 선택하세요.", Type:=8)
MsgBox "선택한 셀: " & rngInput.Address
End Sub
셀 주소가 아닌 다른 값이라도 판단되면 아래 그림과 같이 잘못된 값이라고 에러를 팝업창으로 출력합니다.
셀 주소를 입력해야 제대로 리턴값을 받을 수 있습니다.
'엑셀(Excel) > VBA' 카테고리의 다른 글
엑셀 VBA 함수 Left 문자열의 왼쪽 부분 추출 (1) | 2023.11.20 |
---|---|
엑셀 VBA MsgBox 메시지 상자 표시 함수 사용하기 (0) | 2023.11.20 |
엑셀 VBA 함수 Len 문자열의 길이 반환하기 (0) | 2023.11.18 |
엑셀 VBA 함수 Mid 문자열의 일부를 추출하기 (1) | 2023.11.18 |
엑셀 Excel VBA 개발 도구를 이용해서 버튼 삽입하고 함수 연결하기 (2) | 2023.11.11 |
엑셀 VBA 데이터 입력하는 텍스트 박스(Text Box) 사용하는 방법 (3) | 2023.11.09 |
엑셀 VBA Select Case 문 사용해서 다중조건 처리하기 (0) | 2023.11.09 |
엑셀 VBA IF 지시 구문 사용하는 방법, IF … ELSEIF … ELSE … ENDIF (4) | 2023.09.20 |