엑셀 VBA에서 InputBox 함수는 사용자로부터 입력을 받을 때 사용됩니다.
즉, 메시지 박스를 통해 데이터를 입력받고, 이를 변수에 저장하여 활용할 수 있습니다.
1. 기본 문법
변수 = InputBox("메시지", "제목", "기본값")
|
- "메시지" → 사용자에게 표시할 메시지
- "제목" (선택 사항) → 입력 창의 제목
- "기본값" (선택 사항) → 입력 창에 미리 표시할 기본값
2. 기본 사용 예제
Sub 기본_InputBox()
Dim 사용자입력 As String
사용자입력 = InputBox("이름을 입력하세요.", "사용자 입력")
MsgBox "입력한 이름: " & 사용자입력
End Sub
|
📌 사용자가 입력한 값을 메시지 박스로 출력
📌 예: "홍길동" 입력 → "입력한 이름: 홍길동" 출력
3. 기본값 포함
Sub 기본값_포함()
Dim 나이 As String
나이 = InputBox("나이를 입력하세요.", "사용자 입력", "20")
MsgBox "입력한 나이: " & 나이
End Sub
|
📌 기본값 "20"을 제공
📌 사용자가 다른 값을 입력하면 해당 값이 저장됨
4. 숫자 입력 받기
Sub 숫자입력()
Dim 점수 As Integer
점수 = Val(InputBox("시험 점수를 입력하세요.", "점수 입력"))
MsgBox "입력한 점수: " & 점수
End Sub
|
📌 숫자가 아닌 값이 입력되면 0으로 변환됨 (Val 함수 사용)
5. 취소 버튼 처리 ("" 반환)
Sub 취소_버튼_처리()
Dim 사용자입력 As String
사용자입력 = InputBox("이름을 입력하세요.", "사용자 입력")
If 사용자입력 = "" Then
MsgBox "입력이 취소되었습니다."
Else
MsgBox "입력한 이름: " & 사용자입력
End If
End Sub
|
📌 취소 버튼을 누르면 "입력이 취소되었습니다." 메시지 출력
6. 숫자 입력 제한 (IsNumeric 활용)
Sub 숫자만_입력()
Dim 입력값 As String
입력값 = InputBox("숫자를 입력하세요.", "숫자 입력")
If Not IsNumeric(입력값) Then
MsgBox "숫자만 입력해야 합니다!", vbExclamation, "오류"
Else
MsgBox "입력한 숫자: " & 입력값
End If
End Sub
|
📌 숫자가 아닌 값을 입력하면 "숫자만 입력해야 합니다!" 오류 메시지 표시
7. 반복 입력 (올바른 값 입력할 때까지)
Sub 올바른_입력()
Dim 입력값 As String
Do
입력값 = InputBox("1~100 사이의 숫자를 입력하세요.", "숫자 입력")
If 입력값 = "" Then
MsgBox "입력이 취소되었습니다."
Exit Sub
End If
Loop Until IsNumeric(입력값) And Val(입력값) >= 1 And Val(입력값) <= 100
MsgBox "올바른 입력: " & 입력값
End Sub
|
📌 1~100 사이의 숫자가 입력될 때까지 반복
📌 "취소" 버튼 클릭 시 "입력이 취소되었습니다." 출력 후 종료
8. 입력값을 특정 셀에 저장
Sub 셀에_저장()
Dim 입력값 As String
입력값 = InputBox("저장할 데이터를 입력하세요.", "데이터 입력")
If 입력값 <> "" Then
Range("A1").Value = 입력값
MsgBox "입력한 값이 A1에 저장되었습니다."
End If
End Sub
|
📌 사용자가 입력한 값을 A1 셀에 저장
9. 입력값을 여러 셀에 저장
Sub 여러셀_입력()
Dim 이름 As String, 나이 As String, 주소 As String
이름 = InputBox("이름을 입력하세요.", "입력")
나이 = InputBox("나이를 입력하세요.", "입력")
주소 = InputBox("주소를 입력하세요.", "입력")
If 이름 <> "" And 나이 <> "" And 주소 <> "" Then
Range("A1").Value = "이름"
Range("B1").Value = "나이"
Range("C1").Value = "주소"
Range("A2").Value = 이름
Range("B2").Value = 나이
Range("C2").Value = 주소
MsgBox "데이터가 저장되었습니다!"
Else
MsgBox "입력이 취소되었습니다.", vbExclamation
End If
End Sub
|
📌 이름, 나이, 주소 입력 후 A2:C2에 저장
📌 입력 취소 시 "입력이 취소되었습니다." 메시지 출력
10. 비밀번호 입력 (마스킹 Application.InputBox)
Sub 비밀번호_입력()
Dim 비밀번호 As String
비밀번호 = Application.InputBox("비밀번호를 입력하세요.", "보안 입력", Type:=2)
If 비밀번호 = "1234" Then
MsgBox "로그인 성공!"
Else
MsgBox "비밀번호가 틀렸습니다.", vbCritical
End If
End Sub
|
📌 사용자가 "1234" 입력 시 "로그인 성공!" 메시지 출력
📌 그 외 입력 시 "비밀번호가 틀렸습니다." 오류 메시지 출력