この記事ではInputBox関数の使い方と注意点について解説します。
他のよく使うVBA関数一覧はこちら。
InputBox関数の使い方と注意点
InputBox関数は、ユーザーに文字列や数値などの入力を求めるための関数です。
VBAで簡易的な入力フォームを表示したい場合に便利です。
構文
InputBox(プロンプト [, タイトル] [, デフォルト値] [, X位置] [, Y位置] [, ヘルプファイル] [, コンテキスト])
- プロンプト : 入力を促すメッセージ(必須)
- タイトル : ウィンドウのタイトルバーに表示する文字列(省略可)
- デフォルト値 : 初期表示される入力文字列(省略可)
- X位置/Y位置 : ウィンドウの表示位置(省略可。指定しないと自動配置されます)
- ヘルプ/コンテキスト : ヘルプボタン表示時のヘルプファイル情報(省略可)
- 戻り値 : ユーザーが入力した文字列。キャンセルされた場合は空文字が返ります。
使用例
ユーザーに名前の入力を求める
Sub Sample()
Dim name As String
name = InputBox("あなたの名前を入力してください")
MsgBox "こんにちは、" & name & "さん!"
End Sub
タイトル・初期値を指定する
Sub Sample()
Dim city As String
city = InputBox("出身地を入力してください", "出身地の確認", "東京")
MsgBox "出身地:" & city
End Sub
入力された数値を計算に使う
Sub Sample()
Dim num As String
num = InputBox("数値を入力してください")
If IsNumeric(num) Then
MsgBox val(num) & " は2倍にすると " & Val(num) * 2
Else
MsgBox "数値を入力してください"
End If
End Sub
▶ 出力結果

数値が入力されれば計算され、それ以外(数値以外の文字や空欄)の場合はエラーメッセージを表示します。


⚠️注意
キャンセルを押すと空文字("")が返る
Sub Sample()
Dim result As String
result = InputBox("入力してください")
If result = "" Then
MsgBox "キャンセルされました。"
Else
MsgBox "入力値:" & result
End If
End Sub
▶ 出力結果

入力があれば入力値を表示し、空欄やキャンセルの場合はエラーメッセージを表示します。


入力はすべて「文字列」として返る
数値を入力しても、戻り値の型は文字列 (String) です。
数値として処理したい場合は Val や CLng などで変換が必要です。
Sub Sample()
Debug.Print TypeName(InputBox("数値を入力してください"))
End Sub
▶ 出力結果
String
バリデーション(入力チェック)は自前で行う必要がある
Sub Sample()
Dim x As String
x = InputBox("数値を入力してください")
If IsNumeric(x) Then
' OK
Else
MsgBox "無効な入力です"
End If
End Sub
▶ 出力結果

数値以外や空欄の場合はエラーメッセージを表示します。

関連するVBA関数
- MsgBox関数
- CStr関数
- IsNumeric関数
その他のVBA関数
【Excel VBA】VBAでよく使う関数一覧&基本の使い方



