Excel

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 邏輯值(TrueFalse
8 儲存格參照,視為 Range 物件
16 錯誤值,例如 #N/A
64 陣列值

假設我們想讓使用者只能輸入數字:

' 輸入數字
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

Share
Published by
Office Guide
Tags: VBA

Recent Posts

Python 使用 PyAutoGUI 自動操作滑鼠與鍵盤

本篇介紹如何在 Python ...

9 個月 ago

Ubuntu Linux 以 WireGuard 架設 VPN 伺服器教學與範例

本篇介紹如何在 Ubuntu ...

9 個月 ago

Linux 網路設定 ip 指令用法教學與範例

本篇介紹如何在 Linux 系...

9 個月 ago

Windows 使用 TPM 虛擬智慧卡保護 SSH 金鑰教學與範例

本篇介紹如何在 Windows...

10 個月 ago

Linux 以 Shamir’s Secret Sharing 分割保存金鑰教學與範例

介紹如何在 Linux 中使用...

11 個月 ago

Linux 以 Cryptsetup、LUKS 加密 USB 隨身碟教學與範例

介紹如何在 Linux 系統中...

11 個月 ago