대화 상자에 프롬프트를 표시하고, 사용자가 텍스트를 입력하거나 단추를 클릭할 때까지 기다렸다가 텍스트 상자의 내용이 들어 있는 String을 반환합니다.
구문은 다음과 같습니다.
Syntax
InputBox(prompt, [ title ], [ default ], [ xpos ], [ ypos ], [ helpfile, context ])
prompt
prompt : 대화상자에 표시되는 메시지입니다.필수이므로 생략할 수 없습니다.
Sub GetFavoriteFruit()
Dim fruit As String
fruit = InputBox("좋아하는 과일을 입력하세요:")
MsgBox "당신이 좋아하는 과일은 " & fruit & "입니다!"
End Sub
title
title : 제목 표시줄에 표시되는 메시지입니다.
Sub GetAge()
Dim age As String
age = InputBox("나이를 입력하세요:", "나이 입력")
MsgBox "당신의 나이는 " & age & "세입니다!"
End Sub
default
default : 다른 입력이 제공되지 않은 경우 텍스트 상자에 기본으로 표시되는 기본값입니다.생략한 경우에는 위 예제와 같이 비어있는 상태로 표시됩니다.
Sub GetName()
Dim name As String
name = InputBox("이름을 입력하세요:", Default:="John Doe")
MsgBox "안녕하세요, " & name & "님!"
End Sub
xpos : 화면 왼쪽 가장자리에서 대화 상자의 왼쪽 가장자리까지의 수평 거리를 비트 단위로 지정하는 숫자 표현식입니다. xpos를 생략하면 대화 상자가 가로 중앙에 배치됩니다.
ypos : 위쪽에서 대화 상자의 위쪽 가장자리까지의 세로 거리(트윕)를 지정하는 숫자 식입니다. ypos를 생략하면 대화 상자가 화면 아래쪽의 약 1/3 지점에 세로로 배치됩니다.
Sub MoveInputBox()
Dim name As String
Dim xPos As Long
Dim yPos As Long
' xpos와 ypos 값을 변수에 할당
xPos = Application.Left + (Application.Width / 2)
yPos = Application.Top + 100
' InputBox 창의 위치를 조정하여 값을 입력 받음
name = InputBox("이름을 입력하세요:", , , xPos, yPos)
MsgBox "입력된 이름: " & name
End Sub
Sub MoveInputBox()
Dim name As String
Dim xPos As Long
Dim yPos As Long
' xpos와 ypos 값을 변수에 할당
xPos = 10000
yPos = Application.Top + 100
' InputBox 창의 위치를 조정하여 값을 입력 받음
name = InputBox("이름을 입력하세요:", , , xPos, yPos)
MsgBox "입력된 이름: " & name
End Sub
Sub MoveInputBox()
Dim name As String
Dim xPos As Long
Dim yPos As Long
' xpos와 ypos 값을 변수에 할당
xPos = 10000
yPos = 5000
' InputBox 창의 위치를 조정하여 값을 입력 받음
name = InputBox("이름을 입력하세요:", , , xPos, yPos)
MsgBox "입력된 이름: " & name
End Sub
helpfile : 대화 상자에 상황에 맞는 도움말을 제공하는 데 사용할 도움말 파일을 식별하는 String 식입니다. helpfile이 제공되는 경우 컨텍스트도 제공해야 합니다.
context : 도움말 작성자가 해당 도움말 항목에 할당한 도움말 컨텍스트 번호인 숫자 식입니다. 컨텍스트가 제공되면 helpfile도 제공해야 합니다.
다음은 예제 코드입니다.
Example
Sub FindMaxNumber()
Dim inputCount As Integer
Dim number As Variant
Dim maxNumber As Double
Dim i As Integer
inputCount = InputBox("입력할 숫자의 개수를 입력하세요:")
' 입력받은 숫자의 개수만큼 반복하여 숫자 입력 받음
For i = 1 To inputCount
number = InputBox("숫자를 입력하세요 (입력 " & i & "/" & inputCount & "):")
' 입력된 숫자가 유효한지 확인하고 최대값 갱신
If IsNumeric(number) Then
If CDbl(number) > maxNumber Then
maxNumber = CDbl(number)
End If
Else
MsgBox "올바른 숫자를 입력해주세요."
Exit Sub
End If
Next i
MsgBox "입력한 숫자 중 최대값은 " & maxNumber & "입니다."
End Sub
Sub GreetUser()
Dim name As String
Dim age As Integer
name = InputBox("이름을 입력하세요:", "환영합니다!", "John Doe")
age = InputBox("나이를 입력하세요:", "나이 입력", "30")
MsgBox "안녕하세요, " & name & "님!" & vbCrLf & _
"당신의 나이는 " & age & "입니다."
End Sub
Sub InputBox_GenderExample()
' 변수 선언
Dim gender As String
Dim message As String
' 성별 입력 받기
gender = InputBox("당신의 성별은 무엇인가요?", "성별 입력")
' 결과에 따라 메시지 출력
If gender = "남성" Then
message = "당신은 남성입니다."
ElseIf gender = "여성" Then
message = "당신은 여성입니다."
Else
message = "잘못된 입력입니다."
End If
' 메시지 출력
MsgBox message
End Sub
Sub InputBox_MathExample()
' 변수 선언
Dim num1 As Double
Dim num2 As Double
Dim operation As String
Dim result As Double
' 숫자 및 연산자 입력 받기
num1 = InputBox("첫 번째 숫자를 입력하세요.", "숫자 입력")
num2 = InputBox("두 번째 숫자를 입력하세요.", "숫자 입력")
operation = InputBox("계산할 연산자를 입력하세요. (+, -, *, /)", "연산 입력")
' 입력값 계산
Select Case operation
Case "+"
result = num1 + num2
Case "-"
result = num1 - num2
Case "*"
result = num1 * num2
Case "/"
' 0으로 나누기 에러 발생 처리
If num2 = 0 Then
MsgBox "0으로 나눌 수 없습니다."
Exit Sub
Else
result = num1 / num2
End If
Case Else
MsgBox "잘못된 연산자입니다."
Exit Sub
End Select
' 계산 결과 출력
MsgBox "계산 결과: " & result
End Sub
Sub InputBox_RectangleExample()
' 변수 선언
Dim width As Integer
Dim height As Integer
' 폭 및 높이 입력 받기
width = InputBox("사각형의 폭을 입력하세요.", "사각형 그리기")
height = InputBox("사각형의 높이를 입력하세요.", "사각형 그리기")
' 사각형 그리기
Range("A1").Select
ActiveSheet.Shapes.AddShape(msoShapeRectangle, Selection.Left, Selection.Top, width, height).Select
End Sub
'VBA 라이브러리' 카테고리의 다른 글
StrConv 함수 (0) | 2023.07.22 |
---|---|
StrComp 함수 (0) | 2023.07.22 |
ColorConstants (0) | 2023.07.18 |
IIf 함수 (0) | 2023.07.15 |
MsgBox 함수 (0) | 2023.07.14 |