一、簡單演示
二、用戶窗體
【1】如何創建
用戶窗體的位置,跟宏代碼一樣,從 開發工具 菜單這裡,VB編輯器 點擊。
這裡顯示了一個我已經建立好的用戶窗體 UserForm1。如果我們需要新建,很簡單,只需要在目標表格的樹結構範圍內點擊右鍵,插入,用戶窗體,就可以生成一個新的用戶窗體了,並同時打開控件工具箱。
我們先把這個窗體拉大一些,然後看看這個工具箱都有些什麼東西——
標籤、文本框、選項按鈕、複選框……其實,跟 Excel 表格裡面的 開發工具 菜單裡面的東西是一樣的。
如果,覺得不夠用,我們在工具箱 控件 的範圍內點右鍵,有個附加選項,點擊進去。
可用控件的列表非常多,右下角 顯示 這裡,如果我們勾選 只顯示所選項,這幾個就是已經在控件面板上的了。
其它的,其實並不是所有都能用,有的還需要授權,有的是無效的,對這個有興趣的朋友,可用慢慢研究。
好,我們取消關閉,回到 窗體 這裡。
主要的操作,其實都是圖形化的操作,比如,我們需要什麼,用拖動的方式可以,用點擊的方式也可以。
關鍵的是設置這些控件的屬性,有兩種方法打開屬性窗口:1、在窗體上右鍵,屬性。2、視圖 菜單這裡,屬性窗口。
好了,介紹完基本的操作,我們回到 UseForm1,這個是我已經調整好的,也就是剛才演示的時候,彈出來填寫的窗口。
工具箱不見了,我們在 視圖 菜單這裡,找到 工具箱,點擊就出來了。
【2】控件的屬性調整
當我們激活 用戶窗體,或者窗體中的 每種控件,可以看到屬性窗口就自動切換為所激活對象的屬性。
這些屬性,大部分是調整視覺效果的,怎麼調整,大家多試試就掌握了。我這裡講解下比較難的兩個屬性:
1、選項按鈕,在上期也介紹過,這個 GroupName 的屬性,同組的 選項按鈕,記得將 GroupName 設置為一樣的。
2、年齡這裡用到的下拉菜單,控件名字叫 複合框 ComboBox,有個 RowSource 的屬性,是指向下拉菜單的內容的,這裡填單元格範圍就可以了(小窗口顯示 Z 列)。Text 這裡,是它的默認值。RowSource 所指向的單元格內容中,可以不包含 Text 的取值。
【3】用戶窗體跟 Excel 表格的對應
每一個控件,設置窗體本身,雙擊的時候,都會來到 UserForm1 的專屬代碼窗口。
在頂上有兩個下來菜單,左邊拉下來,可以看到我們所有的 控件 都在這裡,我們隨便選一個,然後在右邊,拉下來,這些,專業名字稱為 事件。
比如 Click,就是點擊這個控件,就會觸發這個子過程。還有些 KeyDown,KeyUp,KeyPress,非常多。
看看我們這個窗體,所用到的吧。
第一個,CheckBox1_Click(),CheckBox1 是 現金 這個複選框(小窗口),TextBox4 呢,是它右側的這個 文本框。這個子過程,需要實現的是,如果 現金 選上了,右側的 文本框 就顯示,否則的話,就不顯示。
注意一點,現金 默認是不選的,所以,我們設置 TextBox4 的屬性時,Visible 這個屬性默認是 False 的。
第二個,跟第一個類似,跟 支票 這個複選框對應。
第三個,CommandButton1_Click(),是我們跟 Excel 建立聯繫的子過程,代碼行也非常淺顯,首先獲取 表2 的最大行 rmax,然後在 rmax + 1 行把窗體對應的內容一一錄入,1~9,不包括 3,第 3 列是性別,我們先來到最後,看看關於 性別 的獲取——
OptionButton,就是 性別 的 三個選擇按鈕,對每個點擊,都會刷新第 3 列的內容。
當然還有其它方法,比如用 If 函數。
信息錄入完以後,會彈出一個窗口,提示清空當前信息。我們要做的,就是把窗體的所以控件初始化就可以了。
【4】窗體的調用
我們來到 Sheet1 這裡,可以看到,這裡有兩個子過程,內容都是一樣,UserForm1.Show,UserForm1 就是我們窗體的名字,調用窗體的命令就是這麼簡單。
第一個子過程,跟我們之前接觸的子過程是一樣;而第二個,跟剛才的窗體子過程一樣,其實是個事件,只是這個事件的主體是 Sheet1,而觸發的條件是 DoubleClick,也就是雙擊。
我們回到 Excel 表格,看下這個按鈕,右鍵,指定宏,能關聯的子過程,只有普通的子過程,事件是不能關聯的。
我們試試在 表1 任意單元格雙擊,窗體就出來了。
效果跟我們點擊按鈕是一樣的。
用戶窗體,控件其實非常豐富,但普及率非常低,甚至 WPS 對這些控件的屬性都懶得翻譯成中文。
確實,窗體的實用性很低,但裝……裝飾性還可以,有合適的朋友,還不趕快入手?