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 はダイアログ ボックスに入力された値を返します。 [キャンセル] ボタンを選択すると、InputBoxFalse を返します。

Type が 0 の場合、InputBox=2*PI()/360 のようにテキストの形式で数式を返します。 数式に参照がある場合は、A1 形式の参照として返されます。 (参照形式の変換には、ConvertFormula を使用してください)。

Type が 8 の場合、InputBoxRange オブジェクトを返します。 返された結果を Range オブジェクトに代入するには、次のように Set ステートメントを使う必要があります。

Set myRange = Application.InputBox(prompt := "Sample", type := 8)

Set ステートメントを使わないと、変数は Range オブジェクト自体ではなく、セル範囲の値として設定されます。

InputBox メソッドを使ってユーザーに数式を入力させる場合は、その数式を Range オブジェクトに代入するために FormulaLocal プロパティを使う必要があります。 入力する数式にはユーザーの言語が使用されます。

InputBox メソッドは、InputBox 関数とは機能が異なり、ユーザー入力の選択的な検証を実行したり、Excel のオブジェクト、エラー値、数式を扱ったりすることができます。 Application.InputBoxInputBox メソッドを呼び出すことに注意してください。オブジェクト修飾子を省略して 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 のサポートおよびフィードバックを参照してください。