除非注明,文章均為 戰(zhàn)戰(zhàn)如瘋 原創(chuàng),轉(zhuǎn)載請(qǐng)保留鏈接: http://www./cat4/504.html,VBA交流群273624828。 這節(jié)來(lái)看個(gè)類(lèi)模塊的例子。比較常用的一個(gè)類(lèi)模塊的應(yīng)用就是在設(shè)置窗體按鈕的Click事件的時(shí)候,比如在一個(gè)模擬的計(jì)算器中,有0-9共10個(gè)按鈕,每點(diǎn)擊一個(gè)按鈕就輸出相應(yīng)的數(shù)字,如果按常規(guī)方法來(lái)做的話(huà)那這10個(gè)按鈕你每個(gè)都需要寫(xiě)一個(gè)Click事件,如果用類(lèi)模塊的話(huà)就簡(jiǎn)單多了。下而來(lái) 看操作步驟。 首先來(lái)制作一個(gè)如圖所示的簡(jiǎn)單窗體 插入一個(gè)類(lèi)模塊,命名為mybutton,然后輸入下面的代碼
這里Public WithEvents comb As MSForms.CommandButton意思是定義一個(gè)對(duì)象comb,使其具有窗體中按鈕控件的事件,下面的代碼就是將comb直接作為一個(gè)按鈕來(lái)編寫(xiě)了,點(diǎn)擊的時(shí)候窗體中文本框的值是按鈕的Caption屬性。 下面來(lái)寫(xiě)模塊代碼
因?yàn)槲覀円还?0個(gè)按鈕控件,所以先定義一個(gè)公共數(shù)組變量arr(9),這里之所以要定義為公共變量為的是使Sub運(yùn)行完后相應(yīng)的值仍然保留,否則程序釋放了我們?cè)O(shè)的效果也跟著沒(méi)了。 歸類(lèi)用的是Set arr(i).comb = userform1.Controls("CommandButton" & i + 1),arr(i)是類(lèi),comb是類(lèi)中的一個(gè)對(duì)象,按鈕用的是userform1.Controls("CommandButton" & i + 1)這種形式。 運(yùn)行一下該sub過(guò)程,所有的按鈕就有了類(lèi)模塊所定義的Click事件。在實(shí)際運(yùn)行中,該sub過(guò)程可以放了窗體的初始化Initialize事件中,這樣只要調(diào)用窗體所有的Button也就有了Click事件。 本節(jié)示例文件下載地址:http://pan.baidu.com/s/1qWkE37m。 |
|
來(lái)自: gblhp > 《VBA經(jīng)典教程》