Excel VBA表單輸入資料:一看就懂的Userform教學

Excel可以在VBA建立UserForm自訂表單,設計完整欄位介面,進而編寫程式,CurrentRegion.Rows.Count計算目前多少筆資料,自動將資料寫入報表下一筆。本文以事務所內控查核為例介紹。

待過事務所,都有執行過內控查核。在瞭解公司的內部控制制度之後,辨認風險,評估對應的內部措施是否在設計上能有效降低風險、接著驗證該內控實際上是否有在執行。這個驗證執行的過程,便是審計工作中的控制測試。實務上,通常會請客戶提供一整年的明細報表,抽樣選出十幾二十個樣本,根據這些樣本檢視憑證,確定內部程序有效執行。在Excel操作時,是配合滑鼠移動一格一格輸入,不過藉由VBA,可以設計成填寫視窗的輸入模式,免去滑鼠移動的小麻煩,以下介紹:

一、事務所內控測試

銷貨收入控制測試。上方是關於這項查核程序的說明,下方左邊是抽到的出貨單樣本,右邊是要再進一步翻閱該出貨單的訂單,驗證內控制度是否有效執行。

銷貨收入控制測試

二、VBA自訂表單

進入VBA編輯環境:「插入」、「自訂表單」。

「插入」、「自訂表單」

三、UserForm表單

在左上方的「專案」視窗中,可以看到多一個「表單」資料夾,裡面有一個「UserForm1」,然後在右下方的「屬性」視窗中,是關於「UserForm1」這個表單的所有屬性,類似像Excel中的儲存格格式那樣的東西。預設依照字母順序排列,有興趣可以更改每一個屬性設定值試看看。

是關於「UserForm1」這個表單的所有屬性

四、表單名稱標題

將「(Name)」(名稱)改為「銷貨收入控制測試」,將「Caption」(標題)改為「輸入樣本資料」、將「Font」(字型)改為「微體正黑體」,其餘屬性保持預設值。

將「(Name)」(名稱)改為「銷貨收入控制測試」

五、控制項工具箱

移到表單。會自動跳出「工具箱」輔助視窗,裡面有許多控制項,這裡使用「A」,建立「日期」、「訂單」、「客戶」、「單價」、「核准」等標籤,再使用「ab」,在標籤左邊建立相對應的文字輸入方塊,最後是如圖示的「命令按紐」。在表單裡面添加控制項,和在Excel插作圖形方塊的手法是一樣的,讀者可自行嘗試,於此不細述。

會自動跳出「工具箱」輔助視窗

六、檢視表單程式碼

設計完表單,接著是編寫表單控制項的程式。延用微軟系統一貫模式,在表單按下滑鼠右鍵,在跳出來的快捷視窗選取「檢視程式碼」。

在跳出來的快捷視窗選取「檢視程式碼」

七、設計表單程式

輸入如圖所示的程式,關於此程式的說明,將在下一節作詳細介紹。

輸入如圖所示的程式

八、程式顯示表單

建立一個的模組:「插入」、「模組」。於該模組編寫一段程式:「插入」、「程序」。物件是前面步驟設計好的表單,方法是在Excel顯示表單,以VBA語言陳述即為:「銷貨收入控制測試.Show」。

建立一個的模組:「插入」、「模組」。

九、表單輸入資料

在Excel執行「輸入資料」巨集

在Excel執行「輸入資料」巨集。在視窗中輸入完資料,按「確定」,VBA會自動將資料寫入G10到K10儲存格中,然後是下一筆,再輸入資料,按「確定」後,會再將資料寫入G11到K11,依此繼續下去。

VBA設計輸入表單

以往Excel資料,都是直接於儲存格中輸入,這篇文章所介紹的表單,是用VBA設計一套介面,使用者在介面上輸入資料,VBA程式再決定怎麼將這些資料寫入Excel。這個範例是相對較簡單的一小步,但卻是VBA學習的一大步,因為熟悉了表單建置,等於開了一扇門,跨過這道門檻,擁有了設計操作界面的能力,這個界面可以自行規劃按紐或欄位(控制項),透過這些控制項將資料或命令傳給Excel。這一節重點在表單設計,下一節繼續介紹表單的程式碼編寫說明。

每天學習,每天充電:VBA自動化文章合輯

歡迎加入Line社群,口袋裡的VBA小教室!

最新文章: