VBA InputBox用法:叫出Excel對話框,搭配2個輸入輔助

VBA InputBox用法是在Excel叫出對話框,本文介紹直接輸入和引用儲存格兩種方式,搭配資料自動偵錯和名稱更新兩個輔助工具,設計外幣銀行借款更新匯率小程式。

Excel資料輸入與VBA程式

Excel在資料輸入方面,分成兩大類型,一個是直接於儲存格輸入文字或數字,另一個是引用其他儲存格作為參照內容,正是後面這個超連結功能,讓Excel在操作上非常靈活。贊贊小屋相關文章介紹VBA InputBox函數,這個函數可以透過對話方塊輸入資料,不過在實際使用上,會發現這個函數無法引用其他儲存格內容,因此另外有個InputBox方法,它功能和InputBox函數類似,但是可以突破函數限制,以我們熟悉的Excel操作方式,直接於工作表選取範圍作為參照內容,以下具體介紹。

實務案例小程式設計

Step 1 Excel名稱管理員

銀行借款明細表,以名稱方式設定匯率,換算外幣。

Excel名稱管理員

Step 2 VBA程式添加註解

VBA程式如圖所示,綠色部份是在前面加了一撇的備註,如同在Excel資料編輯列前面加上一撇,函數公式會變成是純粹文字,在VBA程式句前加一撇,會變成是程式集裡的單純文字,是程式說明的習慣用法。

VBA程式添加註解

Step 3 VBA InputBox用法測試

執行巨集,在對話方塊想引用工作表上的匯率,發現滑鼠只要一離開對話方塊,馬上不停地轉呀轉,表示沒辦法超連結。不過這裡如果單純輸入數字,是可以達到更新匯率的效果。

VBA InputBox用法測試

Step 4 Application.InputBox

改用「Application.InputBox」方法,「Type:=8」表示資料型態是儲存格參照。於此設置一個自動檢查程序:「If RMB < 0 Then MsgBox “匯率不得小於零”: End If」。正常在VBA語法,「End If」應該獨立一行,這裡簡潔起見,加了「:」將兩行程式連結成一行。另外對於「Names」而言,「Value」(值)和「RefersTo」(參照)兩種方法的結果是一樣的。

Application.InputBox

Step 5 錯誤提示視窗

為了測試檢查程序是否有效,參照到一個數值為負數的儲存格,果然跳出警示視窗,不過這裡並沒有進一步特別作處置,所以程式仍然繼續往下跑,結果就是以負數匯率換算。

錯誤提示視窗

Step 6 InputBox Type測試

另外也測試直接輸入數值,按「確定」,一樣跳出警示視窗,表示已經設定了「Type:=8」,不正確鍵入參照是不行的。注意到上個步驟是有警示但可以進行,這裡不僅僅是警示,而且此路不通。

InputBox Type測試

Step 7 Excel InputBox輸入

正確於對話方塊輸入參照的畫面。

Excel InputBox輸入

Step 8 VBA更新Excel名稱

輸入完了兩個參照,果然更新了匯率和本幣借款金額,名稱是直接更新數值(6.3),並沒有保留參照(=$B$2),這是VBA程式和Excel公式不同的地方。

VBA更新Excel名稱

總結:VBA對話框和進階應用

本文設計VBA函數和事件的方式,透過對話方塊輸入資料。對於Excel而言,每項程序巨集,都是像篩選和排序那樣較為複雜的指令操作。在Excel上方,配置有分門別類組合好的功能區頁籤,例如常用、公式、檢視等,把所有相關的指令按紐放在一起,VBA對話方塊也有類似方式,將自己寫好的程序放在一個面板上,也就是表單及控制項,具體操作於下一節介紹。

參考資源

  1. 微軟VBA InputBox說明。
  2. 贊贊小屋VBA教學手冊。
  3. VBA程式代碼圖書館。

最新文章: