Application.InputBox 方法 (Excel)

可顯示供使用者輸入的對話方塊。 可傳回在對話方塊中輸入的資訊。

語法

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

expression 代表 Application 物件的變數。

參數

名稱 必要/選用 資料類型 描述
Prompt 必要 字串 在對話方塊中顯示的訊息。 可以是字串、數字、日期或布林值 (在顯示之前 Microsoft Excel 會自動將布林值強制轉換成 String)。 最大長度為 255 個字元,否則不會出現提示,且應用程式的方法會立即傳回錯誤 2015。
Title 選用 Variant 輸入方塊的標題。 如果省略此引數,預設標題為 Input。
Default 選用 Variant 指定在對話方塊最初顯示時,要出現在文字方塊中的值。 如果省略此引數,文字方塊的內容會留白。 這個值可以是 Range 物件。
Left 選用 Variant 指定對話方塊的 x 位置 (以點為單位),與螢幕左上角相對。
Top 選用 Variant 指定對話方塊的 y 位置 (以點為單位),與螢幕左上角相對。
說明檔案 選用 Variant 此輸入方塊的 [說明] 檔案名稱。 如果具備 HelpFileHelpContextID 兩個引數,對話方塊中會出現 [說明] 按鈕。
HelpContextID 選用 Variant HelpFile 中說明主題的內容識別碼。
類型 選用 Variant 指定傳回的資料類型。 如果省略此引數,對話方塊將傳回文字。

傳回值

Variant

註解

下表列出可以在 Type 引數中傳遞的值。 可以是下列值的其中一項或總和。 例如,可以接受文字和數位輸入方塊,設定 Type 為 1 + 2。

描述
0 公式
1 數字
2 文字 (字串)
4 邏輯值 (TrueFalse)
8 儲存格參照,視為 Range 物件
16 錯誤值,例如 #N/A
64 陣列值

使用 InputBox 來顯示簡單的對話方塊,讓您可以輸入要在巨集中使用的資訊。 對話框中有確定按鈕和取消按鈕。 如果您選取 [確定] 按鈕,InputBox 將傳回在對話方塊中輸入的值。 如果您選取取消按鈕,則 InputBox 將傳回False

如果類型為 0,InputBox 將以文字形式傳回公式;例如 =2*PI()/360。 如果公式中有任何參考,會以 A1 樣式參考將其傳回。 (使用 ConvertFormula 以在參考樣式之間轉換。)

如果類型為 8,InputBox 將傳回 Range 物件。 您必須使用 Set 陳述式將結果指定給 Range 物件,如下列範例所示。

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

如果您不使用 Set 陳述式,系統會將此變數設為此範圍內的值,而不是 Range 物件本身。

如果使用 InputBox 方法要求使用者輸入公式,則必須使用 FormulaLocal 屬性將公式指定給 Range 物件。 輸入的公式將以使用者語言顯示。

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 的範圍,將一個範圍中的三個值相乘,並傳回結果。

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 支援與意見反應