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 | 此輸入方塊的 [說明] 檔案名稱。 如果具備 HelpFile 和 HelpContextID 兩個引數,對話方塊中會出現 [說明] 按鈕。 |
HelpContextID | 選用 | Variant | HelpFile 中說明主題的內容識別碼。 |
類型 | 選用 | Variant | 指定傳回的資料類型。 如果省略此引數,對話方塊將傳回文字。 |
傳回值
Variant
註解
下表列出可以在 Type 引數中傳遞的值。 可以是下列值的其中一項或總和。 例如,可以接受文字和數位輸入方塊,設定 Type 為 1 + 2。
值 | 描述 |
---|---|
0 | 公式 |
1 | 數字 |
2 | 文字 (字串) |
4 | 邏輯值 (True 或 False) |
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 支援與意見反應。