Application.InputBox メソッド (Excel)Application.InputBox method (Excel)

ユーザー入力用のダイアログ ボックスを表示します。Displays a dialog box for user input. 表示したダイアログ ボックスに入力された情報を返します。Returns the information entered in the dialog box.

構文Syntax

expression.InputBox (Prompt, Title, Default, Left, Top, HelpFile, HelpContextID, Type)expression.InputBox (Prompt, Title, Default, Left, Top, HelpFile, HelpContextID, Type)

expression**Application** オブジェクトを 表す変数。expression A variable that represents an Application object.

パラメーターParameters

名前Name 必須 / オプションRequired/Optional データ型Data type 説明Description
PromptPrompt 必須Required StringString ダイアログ ボックスに表示するメッセージを指定します。The message to be displayed in the dialog box. この引数には、文字列、数値、日付、またはブール値を指定できます (Microsoft Excel では表示される前に、自動的に値を文字列型 (String) に変換します)。This can be a string, a number, a date, or a Boolean value (Microsoft Excel automatically coerces the value to a String before it is displayed). 最大長は 255 文字です。それ以外の場合、プロンプトは表示されず、アプリケーションのメソッドはすぐにエラー 2015 を返します。Maximum length is 255 characters, otherwise there is no prompt, and Application's method immediately returns Error 2015.
タイトルTitle 省略可能Optional VariantVariant ダイアログ ボックスのタイトルを指定します。The title for the input box. この引数を省略すると、既定値の「入力」がタイトル バーに表示されます。If this argument is omitted, the default title is Input.
DefaultDefault 省略可能Optional バリアント型Variant ダイアログ ボックスが最初に表示されるときに、テキスト ボックスに表示される値を指定します。Specifies a value that will appear in the text box when the dialog box is initially displayed. この引数を省略すると、テキスト ボックスが空で表示されます。If this argument is omitted, the text box is left empty. この値は Range オブジェクトを指定できます。This value can be a Range object.
LeftLeft 省略可能Optional バリアント型Variant 画面の左上隅を基準として、ダイアログ ボックスの X 座標をポイント単位で指定します。Specifies an x position for the dialog box in relation to the upper-left corner of the screen, in points.
TopTop 省略可能Optional バリアント型Variant 画面の左上隅を基準として、ダイアログ ボックスの Y 座標をポイント単位で指定します。Specifies a y position for the dialog box in relation to the upper-left corner of the screen, in points.
HelpFileHelpFile 省略可能Optional バリアント型Variant 対象の入力ボックスで使うヘルプ ファイルの名前を指定します。The name of the Help file for this input box. 引数 HelpFile および HelpContextID が共に指定されていれば、ダイアログ ボックス内に [ヘルプ] ボタンが表示されます。If the HelpFile and HelpContextID arguments are present, a Help button will appear in the dialog box.
HelpContextIDHelpContextID 省略可能Optional バリアント型Variant 引数 HelpFile で指定したヘルプ ファイル内のヘルプ トピックのコンテキスト ID 番号を指定します。The context ID number of the Help topic in HelpFile.
TypeType 省略可能Optional VariantVariant 返されるデータの型を指定します。Specifies the return data type. この引数を省略すると、ダイアログ ボックスは文字列 (テキスト) を返します。If this argument is omitted, the dialog box returns text.

戻り値Return value

バリアント型Variant

注釈Remarks

Type 引数で渡すことができる値を次の表に示します。The following table lists the values that can be passed in the Type argument. いずれかの値、または値の合計を指定できます。Can be one or a sum of the values. たとえば、テキストと数値の両方を入力可能な入力ボックスの場合、Type を 1 + 2 に設定します。For example, for an input box that can accept both text and numbers, set Type to 1 + 2.

Value 説明Description
00% 数式A formula
11 数値A number
22 文字列 (テキスト)Text (a string)
44 論理値 (True または False)A logical value (True or False)
88 セル参照 (Range オブジェクト)A cell reference, as a Range object
1616 #N/A などのエラー値An error value, such as #N/A
646.4 値の配列An array of values

InputBox を使用して、マクロで使用する情報を入力できるように簡単なダイアログ ボックスを表示します。Use InputBox to display a simple dialog box so that you can enter information to be used in a macro. ダイアログボックスには、[OK] ボタンと [キャンセル] ボタンがあります。The dialog box has an OK button and a Cancel button. [OK] ボタンを選択すると、InputBox はダイアログ ボックスに入力された値を返します。If you select the OK button, InputBox returns the value entered in the dialog box. [キャンセル] ボタンを選択すると、InputBoxFalse を返します。If you select the Cancel button, InputBox returns False.

Type が 0 の場合、InputBox=2*PI()/360 のようにテキストの形式で数式を返します。If Type is 0, InputBox returns the formula in the form of text; for example, =2*PI()/360. 数式に参照がある場合は、A1 形式の参照として返されます。If there are any references in the formula, they are returned as A1-style references. (参照形式の変換には、ConvertFormula を使用してください)。(Use ConvertFormula to convert between reference styles.)

Type が 8 の場合、InputBoxRange オブジェクトを返します。If Type is 8, InputBox returns a Range object. 返された結果を Range オブジェクトに代入するには、次のように Set ステートメントを使う必要があります。You must use the Set statement to assign the result to a Range object, as shown in the following example.

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

Set ステートメントを使わないと、変数は Range オブジェクト自体ではなく、セル範囲の値として設定されます。If you do not use the Set statement, the variable is set to the value in the range, rather than the Range object itself.

InputBox メソッドを使ってユーザーに数式を入力させる場合は、その数式を Range オブジェクトに代入するために FormulaLocal プロパティを使う必要があります。If you use the InputBox method to ask the user for a formula, you must use the FormulaLocal property to assign the formula to a Range object. 入力する数式にはユーザーの言語が使用されます。The input formula will be in the user's language.

InputBox メソッドは、InputBox 関数とは機能が異なり、ユーザー入力の選択的な検証を実行したり、Excel のオブジェクト、エラー値、数式を扱ったりすることができます。The InputBox method differs from the InputBox function in that it allows selective validation of the user's input, and it can be used with Excel objects, error values, and formulas. Application.InputBoxInputBox メソッドを呼び出すことに注意してください。オブジェクト修飾子を省略して InputBox を指定すると、InputBox 関数が呼び出されてしまいます。Notice that Application.InputBox calls the InputBox method; InputBox with no object qualifier calls the InputBox function.

Example

次の使用例は、数値を入力するダイアログ ボックスを表示します。This example prompts the user for a number.

myNum = Application.InputBox("Enter a number")

次の使用例は、Sheet1 上のセルを選択するよう要求するダイアログを表示します。This example prompts the user to select a cell on Sheet1. 引数 Type を使って、戻り値が必ず有効なセル参照 (Range オブジェクト) であるようにします。The example uses the Type argument to ensure that the return value is a valid cell reference (a Range object).

Worksheets("Sheet1").Activate 
Set myCell = Application.InputBox( _ 
    prompt:="Select a cell", Type:=8)

次の例は、InputBox を使用して、ユーザー定義関数 MyFunction に渡すセル範囲をユーザーが選択できるようにします。この関数は、セル範囲内にある 3 つの値を同時に掛けて、結果を返します。This example uses an InputBox for the user to select a range to pass to the user-defined function MyFunction, which multiplies three values in a range together and returns the result.

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

サポートとフィードバックSupport and feedback

Office VBA またはこの説明書に関するご質問やフィードバックがありますか?Have questions or feedback about Office VBA or this documentation? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.