1. 程式人生 > 電腦技巧 >Excel VBA InputBox 資料輸入對話方塊使用教學與範例

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