InputBox 関数はマクロ実行中にダイアログボックスを画面に表示し、ユーザーからの入力を受け付けます。ダイアログボックス上の何かしらボタンを押下することで、入力されたデータを返却します。但し、ダイアログボックス右上の × ボタンまたは キャンセル ボタンを押下すると値0の文字列を返却します。
InputBox関数の使用方法
引数名 | 省略 | 説明 |
---|---|---|
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
上記サンプルマクロを実行し、まずは キャンセル ボタンを押してみます。
キャンセルした旨のダイアログが表示されました。
再度実行し、次はデータ未入力のまま OK ボタンを押下してみます。
値が入力されていない旨のダイアログが表示されました。
再々実行し、最後に、値を入力して OK ボタンを押下してみます。
入力された値が表示されました。