Excel VBA InputBox 資料輸入對話方塊使用教學與範例
介紹如何在 Excel 中使用 VBA 的 InputBox 資料輸入對話方塊,建立視窗讓使用者輸入資料。
InputBox 資料輸入對話方塊
在 VBA 程式中如果需要要求使用者即時輸入資料,可以使用 InputBox 建立一個對話方塊,讓使用者直接輸入:' 建立資料輸入對話方塊,取得使用者輸入的資料
UserData = InputBox("請輸入資料:")
' 顯示輸入的資料
MsgBox "您輸入的資料是:" & UserData
InputBox 資料輸入對話方塊在程式執行時就會跳出一個對話視窗,讓使用者輸入資料:
InputBox 資料輸入對話方塊使用者輸入資料之後,VBA 程式就可以取得輸入的內容:
輸入的內容
自訂對話方塊
InputBox 其實還有許多可自訂的選項可用:InputBox(提示訊息, [標題], [預設值], [X座標], [Y座標])除了第一個提示訊息參數一定要指定之外,其餘的參數都是選填的。
以下是一個自訂對話方塊標題、預設值、位置的範例:
' 自訂對話方塊標題、預設值、位置
UserData = InputBox("請輸入資料:", "使用者輸入", "OfficeGuide", 1500, 500)執行的結果會像這樣:
自訂對話方塊
判斷未輸入、取消輸入資料
如果需要判斷使用者是否有在 InputBox 中輸入資料,可以使用以下方式:UserData = InputBox("請輸入資料:")
If StrPtr(UserData) = 0 Then
MsgBox "您取消輸入。"
ElseIf UserData = vbNullString Then
MsgBox "您沒有輸入資料。"
Else
MsgBox "您輸入的資料是:" & UserData
End If這樣就可以清楚判斷出使用者按下「取消」、或是未輸入任何資料就按下「確定」的狀況。
Application.InputBox 資料輸入對話方塊
資料輸入對話方塊除了一般的 InputBox 之外,還有另外一種 Application.InputBox,兩者的功能與用法都非常相似,主要的小差異是 Application.InputBox 多了可以指定輸入資料類型的功能:InputBox(提示訊息, [標題], [預設值], [X座標], [Y座標], [Type:=類型代碼])以下是可用的類型代碼:
值描述0公式1數字2文字(字串)4邏輯值(True 或 False)8儲存格參照,視為 Range 物件16錯誤值,例如 #N/A64陣列值假設我們想讓使用者只能輸入數字:
' 輸入數字
UserData = Application.InputBox("請輸入數字:", Type:=1)如果使用者輸入的資料不是數字,就會出現這樣的提示訊息:
不正確的數字
選擇範圍、計算總和範例
以下是一個利用 Application.InputBox 讓使用者在 Excel 表格中選擇範圍,並計算範圍內所有數值總和的範例:Dim rng As Range
Dim cel As Range
Dim s As Integer
' 選擇範圍
Set rng = Application.InputBox("請選擇範圍:", Type:=8)
' 計算總和
s = 0
For Each cel In rng.Cells
s = s + cel.Value
Next cel
MsgBox "總和:" & s執行時使用者可以直接以滑鼠選擇 Excel 儲存格範圍:
選擇儲存格範圍選擇範圍之後,就會計算出數值總和:
數值總和參考資料:Office 官方網頁、Access-Excel