Application.InputBox メソッド (Excel)
ユーザー入力用のダイアログ ボックスを表示します。 表示したダイアログ ボックスに入力された情報を返します。
構文
expression.InputBox (Prompt, Title, Default, Left, Top, HelpFile, HelpContextID, Type)
expressionApplication オブジェクトを 表す変数。
パラメーター
名前 | 必須 / オプション | データ型 | 説明 |
---|---|---|---|
Prompt | 必須 | String | ダイアログ ボックスに表示するメッセージを指定します。 この引数には、文字列、数値、日付、またはブール値を指定できます (Microsoft Excel では表示される前に、自動的に値を文字列型 (String) に変換します)。 最大長は 255 文字です。それ以外の場合、プロンプトは表示されず、アプリケーションのメソッドはすぐにエラー 2015 を返します。 |
タイトル | 省略可能 | Variant | ダイアログ ボックスのタイトルを指定します。 この引数を省略すると、既定値の「入力」がタイトル バーに表示されます。 |
Default | 省略可能 | バリアント型 | ダイアログ ボックスが最初に表示されるときに、テキスト ボックスに表示される値を指定します。 この引数を省略すると、テキスト ボックスが空で表示されます。 この値は Range オブジェクトを指定できます。 |
Left | 省略可能 | バリアント型 | 画面の左上隅を基準として、ダイアログ ボックスの X 座標をポイント単位で指定します。 |
Top | 省略可能 | バリアント型 | 画面の左上隅を基準として、ダイアログ ボックスの Y 座標をポイント単位で指定します。 |
HelpFile | 省略可能 | バリアント型 | 対象の入力ボックスで使うヘルプ ファイルの名前を指定します。 引数 HelpFile および HelpContextID が共に指定されていれば、ダイアログ ボックス内に [ヘルプ] ボタンが表示されます。 |
HelpContextID | 省略可能 | バリアント型 | 引数 HelpFile で指定したヘルプ ファイル内のヘルプ トピックのコンテキスト ID 番号を指定します。 |
Type | 省略可能 | Variant | 返されるデータの型を指定します。 この引数を省略すると、ダイアログ ボックスは文字列 (テキスト) を返します。 |
戻り値
バリアント型
注釈
Type 引数で渡すことができる値を次の表に示します。 いずれかの値、または値の合計を指定できます。 たとえば、テキストと数値の両方を入力可能な入力ボックスの場合、Type を 1 + 2 に設定します。
値 | 説明 |
---|---|
0 | 数式 |
1 | 数値 |
2 | 文字列 (テキスト) |
4 | 論理値 (True または False) |
8 | セル参照 (Range オブジェクト) |
16 | #N/A などのエラー値 |
64 | 値の配列 |
InputBox を使用して、マクロで使用する情報を入力できるように簡単なダイアログ ボックスを表示します。 ダイアログボックスには、[OK] ボタンと [キャンセル] ボタンがあります。 [OK] ボタンを選択すると、InputBox はダイアログ ボックスに入力された値を返します。 [キャンセル] ボタンを選択すると、InputBox は False を返します。
Type が 0 の場合、InputBox は =2*PI()/360
のようにテキストの形式で数式を返します。 数式に参照がある場合は、A1 形式の参照として返されます。 (参照形式の変換には、ConvertFormula を使用してください)。
Type が 8 の場合、InputBox は Range オブジェクトを返します。 返された結果を Range オブジェクトに代入するには、次のように Set ステートメントを使う必要があります。
Set myRange = Application.InputBox(prompt := "Sample", type := 8)
Set ステートメントを使わないと、変数は Range オブジェクト自体ではなく、セル範囲の値として設定されます。
InputBox メソッドを使ってユーザーに数式を入力させる場合は、その数式を Range オブジェクトに代入するために FormulaLocal プロパティを使う必要があります。 入力する数式にはユーザーの言語が使用されます。
InputBox メソッドは、InputBox 関数とは機能が異なり、ユーザー入力の選択的な検証を実行したり、Excel のオブジェクト、エラー値、数式を扱ったりすることができます。 Application.InputBox
が InputBox メソッドを呼び出すことに注意してください。オブジェクト修飾子を省略して InputBox
を指定すると、InputBox 関数が呼び出されてしまいます。
例
次の使用例は、数値を入力するダイアログ ボックスを表示します。
myNum = Application.InputBox("Enter a number")
次の使用例は、Sheet1 上のセルを選択するよう要求するダイアログを表示します。 引数 Type を使って、戻り値が必ず有効なセル参照 (Range オブジェクト) であるようにします。
Worksheets("Sheet1").Activate
Set myCell = Application.InputBox( _
prompt:="Select a cell", Type:=8)
次の例は、InputBox を使用して、ユーザー定義関数 MyFunction に渡すセル範囲をユーザーが選択できるようにします。この関数は、セル範囲内にある 3 つの値を同時に掛けて、結果を返します。
Sub Cbm_Value_Select()
'Set up the variables.
Dim rng As Range
'Use the InputBox dialog to set the range for MyFunction, with some simple error handling.
Set rng = Application.InputBox("Range:", Type:=8)
If rng.Cells.Count <> 3 Then
MsgBox "Length, width and height are needed -" & _
vbLf & "please select three cells!"
Exit Sub
End If
'Call MyFunction by value using the active cell.
ActiveCell.Value = MyFunction(rng)
End Sub
Function MyFunction(rng As Range) As Double
MyFunction = rng(1) * rng(2) * rng(3)
End Function
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。