InputBox 関数はマクロ実行中にダイアログボックスを画面に表示し、ユーザーからの入力を受け付けます。ダイアログボックス上の何かしらボタンを押下することで、入力されたデータを返却します。但し、ダイアログボックス右上の × ボタンまたは キャンセル ボタンを押下すると値0の文字列を返却します。
InputBox関数の使用方法
構文
InputBox(Prompt [, Title] [, Default] [, XPos] [, YPos] [, HelpFile] [, Context]) 【戻り値】 文字列型 (String)
引数名 | 省略 | 説明 |
---|---|---|
Prompt | × | 必須入力です。ダイアログ ボックス内にメッセージとして表示する文字列を示す文字列式を指定します。 改行するにはvbCr、vbLf、vbCrLfのいずれかを使用します。 |
Title | ○ | ダイアログ ボックスのタイトル バーに表示する文字列式を指定します。 省略すると、タイトル バーにはアプリケーション名が表示されます。 |
Default | ○ | テキスト ボックスに既定値として表示する文字列式を指定します。 |
XPos | ○ | パソコン画面の左端からダイアログ ボックスの左端までの水平方向の距離を、twip 単位で示す数式を指定します。 省略すると、パソコン画面の中央の位置に配置されます。 |
YPos | ○ | パソコン画面の上端からダイアログ ボックスの上端までの垂直方向の距離を、twip 単位で示す数式を指定します。 省略すると、パソコン画面の上端から約 1/3 の位置に配置されます。 |
HelpFile | ○ | この引数は、表示するダイアログ ボックスの説明を、ヘルプを使って表示するときに指定します。 使用するヘルプ ファイルの名前を示す文字列式を指定します。 引数 HelpFile を指定した場合は、引数 Context も指定する必要があります。 |
Context | ○ | ヘルプ トピックに指定したコンテキスト番号を表す数式を指定します。 引数 Context を指定した場合は、引数 HelpFile も指定する必要があります。 |
InputBox関数の使用例
引数Prompt、Title、Defaultの表示場所
引数の表示場所を確認する例です。
Sub sample_ef011_01()
Dim strData As String
strData = InputBox("ここが引数Promptです。" & vbLf & "(必須入力)", _
"ここが引数Titleです。", _
"ここが引数Defaultです。")
End Sub

デフォルト値の設定
省略可能引数のうち、名前付き引数を使用してDefault値を設定する例です。
Sub sample_ef011_02()
Dim strData As String
strData = InputBox("数値を入力してください。", _
Default:=100)
End Sub

入力データによる処理の分岐
入力されたデータにより処理を分岐する例です。
Sub sample_ef011_03()
Dim strData As String
strData = InputBox("値を入力してください。")
'キャンセルされたかどうかの判断はStrPtr関数で行います。
If StrPtr(strData) = 0 Then
'キャンセルボタンか×ボタンが押下された場合
MsgBox "入力がキャンセルされました。", vbExclamation
ElseIf strData = "" Then
'値を入力しないでOKボタンを押下した場合
MsgBox "値が未入力です。", vbExclamation
Else
'値を入力してOKボタンを押下した場合
MsgBox "入力された値は" & strData & "です。", vbInformation
End If
End Sub
上記サンプルマクロを実行し、まずは キャンセル ボタンを押してみます。
![[キャンセル]または[×]ボタンを押下](https://www.239-programing.com/wp-content/uploads/func/img_f011_01.png)
キャンセルした旨のダイアログが表示されました。

再度実行し、次はデータ未入力のまま OK ボタンを押下してみます。
![未入力状態で[OK]ボタンを押下](https://www.239-programing.com/wp-content/uploads/func/img_f011_03.png)
値が入力されていない旨のダイアログが表示されました。

再々実行し、最後に、値を入力して OK ボタンを押下してみます。
![値を入力して[OK]ボタンを押下した場合](https://www.239-programing.com/wp-content/uploads/func/img_f011_05.png)
入力された値が表示されました。
