Please Enable JavaScript!
Gon[ Enable JavaScript ]

엑셀(VBA) InputBox 함수 이용해서 입력값 받기

엑셀(Excel)/VBA
반응형

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

 

셀 주소가 아닌 다른 값이라도 판단되면 아래 그림과 같이 잘못된 값이라고 에러를 팝업창으로 출력합니다.

 

셀 주소를 입력해야 제대로 리턴값을 받을 수 있습니다.

반응형
Posted by 녹두장군1
,