Excel中“控件”與VBA的基本知識
http://www./blog/yangqiue/MyEssayDetail.asp?id=46725
開發(fā)工具
設(shè)計+acitive控件才會出現(xiàn)groupName
分組框添加。
---------------------------------------------------------------------------------------
Excel中“控件”與VBA的基本知識
一、“控件”的基本知識
㈠什么是“控件” “控件”是“控件工具箱”提供的一系列對象,擁有自己的名稱,存儲于文檔中。 “控件”具有“屬性”、“方法”和“事件” “屬性”是描述其所屬控件的某個可量化特征的變量,在 VBA 程序中,“屬性”是使用點標(biāo)記引用的:首先寫下控件名稱,輸入小數(shù)點,將列出“屬性名”和“方法名”清單,然后可以選擇或輸入“屬性”名稱,如:TextBox1.Text “方法”是控件“知道”如何執(zhí)行的某種操作,在 VBA 程序中,“方法”也是使用點標(biāo)記引用的:首先寫下“控件”名稱,輸入小數(shù)點,將列出“屬性名”和“方法名”清單,然后可以選擇或輸入方法“名稱”,如:TextBox1.Activate “事件”是一種被對象“意識到”已經(jīng)發(fā)生的操作,用戶一般通過“事件”來完成一系列的程序運行,用戶在Office中開發(fā)VBA應(yīng)用,主要工作就是編制各種“控件”的各種“事件”對應(yīng)的VBA程序(如單擊“命令按鈕”控件對應(yīng)事件的VBA程序代碼)。 ㈡什么時候使用控件 如果需要在Microsoft Office中交互地完成某一任務(wù),那么可以編寫控件方法對應(yīng)的VBA程序。 例如,編寫單擊“命令按鈕”的“方法”對應(yīng)的更名保存文件的VBA程序 二、Visual Basic編輯器與控件 ㈠什么是Visual Basic編輯器 Visual Basic編輯器是一個用于編寫和編輯VBA 的功能強大的工具,它使用戶得以擴(kuò)展宏的功能和多用性,而非局限于通過簡單的錄制就可以完成的任務(wù)。 要打開該工具,執(zhí)行“工具/宏/Visual Basic 編輯器”(或按 Alt+F11)。 ㈡Visual Basic編輯器窗口 Visual Basic 編輯器可在不同的窗口中顯示不同的信息。開始查看與編輯宏時,需要重點了解以下幾個窗格。 ⒈“項目資源管理器”窗格 ⑴作用 在直接打開 Visual Basic 編輯器時,可以使用“項目資源管理器”窗口來選擇要處理的VBA 執(zhí)行“視圖/工程資源管理器”命令即可使之顯示, 右擊窗格,“可連接的”選項用于控制該窗格是否可嵌入編輯器窗口 ⑵結(jié)構(gòu) “項目資源管理器”采用樹狀視圖(類似于 Windows? 資源管理器中的樹狀視圖)中顯示所有項目的“代碼”和“宏”。 該樹狀結(jié)構(gòu)中的根對象(項目)是您所處理的當(dāng)前工作簿以及其他一些打開的工作簿和外接程序 項目使用的主要元素分別存儲在每個項目的獨立文件夾中,包括: ?、費icroSoft Excel對象列表(各Sheet、ThisWorkBook) ?、谀K(如果有的話),用戶錄制的與工作表相關(guān)的宏代碼 ?、垲惸K(如果有的話),用戶為工作簿創(chuàng)建的用戶定義對象的定義 ?、苡脩舸绑w(如果有的話),提供了一個可視界面,用戶可以在其上放置圖形控件,例如按鈕、圖像和文本區(qū)域 ⒉“代碼”窗格 “代碼”窗口是 Visual Basic 編輯器中最大的窗口,其頂部有兩個下拉框 ?、僮髠?cè)的下拉框(即“對象”框)選擇要處理的對象 ?、谟覀?cè)的下拉框(即“方法”框)用于選擇當(dāng)前對象中的各種方法 ⒊“屬性”窗格 作用:用于查看和更改與選定對象相關(guān)的各種“屬性”。對于控件而言,通常有包括“名稱”在內(nèi)的許多“屬性”是可用的。 操作:對“屬性”窗口中的“屬性”的更改通常直接選擇相應(yīng)“屬性項”直接更改;此外,也可以通過VBA程序設(shè)置或修改。 ㈢如何手工編寫VBA程序 在“項目資源管理器”窗格選中要添加“VBA”程序的“項目” 單擊“代碼”窗格左上角“控件”下拉列表框,單擊要編寫其對應(yīng)程序的控件; 再單擊該窗格右上角“方法”下拉列表框,單擊要編寫其對應(yīng)程序的控件,即可在代碼窗格中輸入與編輯VBA程序源代碼。 三、控件與VBA程序 ㈠“控件”與“VBA程序”的關(guān)系 控件的“方法”通過其對應(yīng)的VBA程序?qū)崿F(xiàn);當(dāng)在Excel中添加”控件”后,可以通過編寫該“控件”某一“事件”對應(yīng)的VBA程序。 ㈡Excel中的“控件”工具欄 右擊Excel的工具欄,選擇“控件工具欄”即可使之“顯示|消隱”。 Excel的控件工具欄從左至少右依次為: 設(shè)計模式|退出設(shè)計模式、屬性、查看代碼、復(fù)選框、文本框、按鈕、選項按鈕、列表框、組合框、切換按鈕、滾動條、微調(diào)項、標(biāo)簽、圖像、其他控件。
⒈“標(biāo)簽”和“文本框” ⑴標(biāo)簽 用于顯示文本信息,本身不具有可輸入功能;標(biāo)簽的默認(rèn)屬性是Caption屬性,標(biāo)簽的默認(rèn)事件是Click事件。 標(biāo)簽的基本屬性包括: 名稱 Caption:標(biāo)簽文本內(nèi)容 BackColor:背景色 ForColor:前景色 WordWrap:詞繞轉(zhuǎn) Width:寬度 Height:高度 Font:字體 …… ⑵文本框 用于交互輸入與顯示文本信息,本身具有交互性;文本框的默認(rèn)屬性是Value屬性,文本框的默認(rèn)事件是Change事件。
文本框的基本屬性包括: 名稱 Text:文本 Value:數(shù)據(jù) ScrollBars:滾動條 BackColor:背景色 ForColor:前景色 WordWrap:詞繞轉(zhuǎn) MultiLine:多行 MaxLength:最大長度 Width:寬度 Height:高度 Font:字體 …… ⒉ “選項按鈕”和“復(fù)選框” ⑴選擇按鈕 用于顯示組中的某一項是否被選中,請注意框架中的各個選項按鈕是互斥的;選項按鈕默認(rèn)屬性是 Value 屬性,選項按鈕默認(rèn)事件是 Click 事件。 選擇按鈕的基本屬性包括: 名稱 Value:選中否 Caption:顯示選項文本信息 BackColor:背景色 ForColor:前景色 GroupName:組名 WordWrap:詞繞轉(zhuǎn) Width:寬度 Height:高度 Font:字體 …… ⑵復(fù)選框 可以允許用戶從兩個值中選擇一個,例如從 Yes/No、True/False 或 On/Off 中進(jìn)行選擇;復(fù)選框的默認(rèn)屬性是 Value 屬性,復(fù)選框的默認(rèn)事件是 Click 事件。 復(fù)選框的基本屬性包括: 名稱 Caption:顯示選項文本信息 Value:選中否 BackColor:背景色 ForColor:前景色 GroupName:組名 WordWrap:詞繞轉(zhuǎn) Width:寬度 Height:高度 Font:字體 …… ⒊“命令按鈕” 通過選用其某種事件對應(yīng)的VBA程序來啟動、結(jié)束或中斷一項操作或一系列操作;在命令按鈕上可以顯示文本或圖片,或者二者同時顯示;命令按鈕的默認(rèn)屬性是AutoSize屬性,命令按鈕的默認(rèn)事件是Click事件。 “命令按鈕”的基本屬性包括: 名稱 Picture:顯示的圖像 Caption:顯示的文本 BackColor:背景色 ForColor:前景色 Width:寬度 Height:高度 Font:字體 …… ⒋“列表框”和“組合框” ⑴列表框 用于顯示若干個值的列表,用戶可以從中選擇一個或多個值;列表框的默認(rèn)屬性是 Value 屬性,列表框的默認(rèn)事件是 Click 事件。 注意:不能在下拉列表框中放入文本。主要用于列出多項供選擇(單項選擇或多項選擇均可)的文本信息。 列表框的基本屬性包括: 名稱:ListBox Text:文本 Value:數(shù)據(jù) TopIndex:頂部選項索引值 BackColor:背景色 ForColor:前景色 MultiSelect:多選 Width:寬度 Height:高度 Font:字體 …… 列表框的賦值方法 ?、儆肁ddItem屬性加載單列數(shù)據(jù)到ListBox1,并取值到文本框與標(biāo)簽 ?、谟肁ddItem、List屬性加載雙列數(shù)據(jù)到ListBox1,并取值到標(biāo)簽 ?、塾脭?shù)組、List屬性或Column屬性賦值ListBox1和2 ⑵組合框 主要用于列出多項供選擇(單項選擇)的文本信息;組合框?qū)⒘斜砜蚝臀谋究虻奶匦越Y(jié)合在一起,用戶可以像在文本框中那樣輸入新值,也可以像在列表框中那樣選擇已有的值;組合框的默認(rèn)屬性是Value屬性,組合框的默認(rèn)事件是 Change 事件。 注意:如果希望在任何時候都將列表中的各行數(shù)據(jù)顯示出來,那么可以使用列表框代替組合框;如果希望在使用組合框時,只使用列表中列出的值,可設(shè)置組合框的 Style 屬性,以使該控件看上去像下拉列表框 組合框的基本屬性包括: 名稱:ComboBox Text:文本 Value:數(shù)據(jù) TopIndex:頂部選項索引值 BackColor:背景色 ForColor:前景色 Width:寬度 Height:高度 Font:字體 …… 組合框的賦值方法 ?、貯ddItem方法對組合框賦值 ②用數(shù)組和List屬性對組合框賦值 ⒌ “切換按鈕” 顯示項目的選中狀態(tài)。 說明:用切換按鈕顯示某個項目是否被選中;也可在框架中使用切換按鈕,以在一組相關(guān)項目中選擇一個或多個項目;切換按鈕的默認(rèn)屬性是 Value 屬性,切換按鈕的默認(rèn)事件是Click事件。 “切換按鈕”的基本屬性包括: 名稱:ToggleButton1(默認(rèn)) BackColor:背景顏色 Caption:顯示的文本內(nèi)容 ForeColor:前景顏色 Value:True和False AutoSize:自動調(diào)整大小(True和False) Enable:使能(True和False) WordWrap:詞繞轉(zhuǎn) Height:高度 Width:寬度 Font:字型 …… ⒍“數(shù)值調(diào)節(jié)鈕”和“滾動條” ⑴數(shù)值調(diào)節(jié)鈕 主要用于增加及減少數(shù)值。 說明:單擊數(shù)值調(diào)節(jié)鈕只會更改數(shù)值調(diào)節(jié)鈕的值??梢跃帉懘a來用數(shù)值調(diào)節(jié)鈕更新其他控件的顯示值,例如標(biāo)簽控件的Caption屬性或文本框的Text屬性。若要創(chuàng)建橫向或縱向的數(shù)值調(diào)節(jié)鈕,請在窗體中沿橫向或縱向拖動數(shù)值調(diào)節(jié)鈕的尺寸控點;數(shù)值調(diào)節(jié)鈕的默認(rèn)屬性是 Value 屬性,數(shù)值調(diào)節(jié)鈕的默認(rèn)事件是 Change 事件。 數(shù)值調(diào)節(jié)鈕的基本屬性包括: 名稱:SpinButton1 Delay:50 Max:100 Min:0 SmallChange:1 BackColor:背景色 ForColor:前景色 Value:值 Width:寬度 Height:高度 Font:字體 …… 數(shù)值調(diào)節(jié)鈕的賦值:“直接賦值”與“數(shù)組賦值”。 ⑵滾動條 根據(jù)滾動塊的位置,返回或設(shè)置另一控件的值;滾動條是可放置在窗體中的獨立控件。 為了用滾動條設(shè)置或讀取其他控件的值,必須為滾動條的事件和方法編寫代碼。例如,為了用滾動條更新文本框的值,可編寫代碼讀取滾動條的Value屬性,然后設(shè)置文本框的Value屬性;滾動條的默認(rèn)屬性是 Value 屬性,滾動條的默認(rèn)事件是 Change 事件。 滾動條的基本屬性包括: 名稱:ScrollBar Max:2767 Min:0 SmallChange:1 BackColor:背景色 ForColor:前景色 Value:值 Width:寬度 Height:高度 Font:字體 …… 滾動條的賦值:“直接賦值”與“數(shù)組賦值”。 四、進(jìn)一步學(xué)習(xí)需要的預(yù)備知識 ㈠激活工作表時發(fā)生的事件 Private Sub Worksheet_Activate() …… End Sub ㈡選中“組合框”時發(fā)生的事件 Private Sub ComboBoxClass_GotFocus() …… End Sub ㈢“組合框(ComboBox2_1~ComboBox2_12)”的典型循環(huán)賦值程序代碼 Dim ComboBox As Object Dim i As Integer Dim c(1 To 3) As String c(1) = "" c(2) = "正確" c(3) = "錯誤" For i = 1 To 12 '循環(huán)對12個“是非題組合框”賦值 Set ComboBox = Sheets("基于控件的自測練習(xí)").Shapes.Item("ComboBox2_" & i).OLEFormat.Object.Object ComboBox.List() = c() Next i ㈣兩個工作表之間數(shù)據(jù)的轉(zhuǎn)換 ⒈基本語句 Sheets("A工作表名").Cells(行序號, 列序號) = Sheets("B工作表").Cells(列序號, 行序號2) 作用:把“B工作表”中指定單元格的數(shù)據(jù)賦值給“A工作表”的指定單元格。 ⒉案例 由“參考答案”工作表向“基于控件的試卷”工作表復(fù)制參考答案的典型語句如下: '獲取“單選題”參考答案 For i = 2 To 15 Sheets("基于控件的自測練習(xí)").Cells(i + 5 * (i - 1) - i + 5, 3) = Sheets("參考答案").Cells(i, 2) Next i
|