엑셀(Excel) VBA - InputBox 함수를 이용해서 입력값 받기 |
환경: Microsoft Excel 2013 |
InputBox 는 사용자로부터 값을 입력 받을 수 있기 때문에 아주 다양한 용도로 사용할 수 있습니다. 그리고 Input 박스는 단순히 값을 입력 받는 것뿐만 아니라 입력값에 대해 유효성 체크도 가능합니다. 사용자를 실수를 줄일 수 있는 방편이죠.
▼ 문법은 다음과 같습니다. 각 인수별로 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 : 배열
▼ 아래 소스는 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 |
댓글을 달아 주세요