[計(jì)算機(jī)]VBA開(kāi)發(fā)實(shí)用_第1頁(yè)
[計(jì)算機(jī)]VBA開(kāi)發(fā)實(shí)用_第2頁(yè)
[計(jì)算機(jī)]VBA開(kāi)發(fā)實(shí)用_第3頁(yè)
[計(jì)算機(jī)]VBA開(kāi)發(fā)實(shí)用_第4頁(yè)
[計(jì)算機(jī)]VBA開(kāi)發(fā)實(shí)用_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、. VBA開(kāi)發(fā)實(shí)用  VBA(Visual Basic for Application)是Office自帶的二次開(kāi)發(fā)工具,可為日常辦公帶來(lái)極大的便利。本文講述Office各個(gè)成員VBA開(kāi)發(fā)的常用對(duì)象和其相關(guān)的屬性、方法和事件(包括Word、Excel、PowerPoint等),并給出相關(guān)的實(shí)例代碼。一、VBA基礎(chǔ)1.什么是VBA在Office對(duì)于一些煩瑣、重復(fù)的操作,用戶(hù)可以通過(guò)“宏”來(lái)實(shí)現(xiàn)?!昂辍奔词怯梢幌盗忻詈椭噶罱M合而成的命令集,其本質(zhì)是VBA代碼組成的程序。VBA是微軟在其開(kāi)發(fā)的應(yīng)用程序中共享的通用自動(dòng)化語(yǔ)言。2.錄制/運(yùn)行宏VBA初期開(kāi)發(fā)可通過(guò)錄制“宏”的操作來(lái)

2、獲取代碼,在Office中幾乎所有的操作均可通過(guò)錄制“宏”來(lái)獲取代碼。這里,我們通過(guò)一個(gè)簡(jiǎn)單的“宏”錄制實(shí)例來(lái)學(xué)習(xí):在Word中將所有的“電腦”字樣替換為“計(jì)算機(jī)”,并插入一張4行2列的表格。在Office中錄制宏,可單擊“工具宏錄制新宏”菜單命令實(shí)現(xiàn),單擊該命令后將出現(xiàn)“錄制宏”對(duì)話(huà)框,如圖1所示。其中,“宏名”框用于為錄制的宏設(shè)置名稱(chēng),可使用默認(rèn)的“Macro1”。“工具欄”和“鍵盤(pán)”二個(gè)按鈕分別用于設(shè)置宏的觸發(fā)位置?!皩⒑瓯4嬖凇笨蚩稍O(shè)置宏的保存位置,一般包括“Normal.dot”(共用模板)和當(dāng)前文檔2種,建議保存在當(dāng)前文檔中,以免對(duì)所有文檔產(chǎn)生影響。在“說(shuō)明”框中可輸入對(duì)該宏的相關(guān)

3、說(shuō)明。單擊“確定”按鈕,即可開(kāi)始錄制宏。此時(shí)在文檔編輯界面中將顯示“宏錄制”工具欄。該工具欄有2個(gè)與錄音機(jī)非常類(lèi)似的按鈕,第一個(gè)按鈕為“停止錄制”,第二個(gè)按鈕為“暫停錄制”。在錄制過(guò)程中可隨時(shí)通過(guò)這二個(gè)按鈕來(lái)進(jìn)行控制。隨后按常規(guī)操作來(lái)實(shí)現(xiàn)前述的任務(wù),操作完成后單擊“停止錄制”按鈕,結(jié)束錄制即可。注意:錄制“宏”時(shí)可使用鼠標(biāo)單擊菜單和按鈕,但無(wú)法錄制鼠標(biāo)在文檔窗口中的移動(dòng),因此必須通過(guò)鍵盤(pán)來(lái)實(shí)現(xiàn)這些動(dòng)作。此外,Office中所有錄制的“宏”,其名稱(chēng)的首字符必須為字母或漢字、數(shù)字及下劃線(xiàn)(名稱(chēng)最多可為255個(gè)字符),且“宏”名稱(chēng)中不允許包含空格。運(yùn)行已錄制的“宏”,可單擊“工具宏宏”菜單命令。在出

4、現(xiàn)的“宏”對(duì)話(huà)框的“宏名”下拉框中選擇需運(yùn)行的宏,然后單擊“運(yùn)行”按鈕即可。隨后Word將自動(dòng)重現(xiàn)前述執(zhí)行的操作,避免了重復(fù)的辦公操作。3.宏的局限性雖然Office的大部分操作均可用錄制“宏”的方法來(lái)保存,但錄制的“宏”僅“忠實(shí)”地再現(xiàn)了特定的操作,對(duì)于一些需要進(jìn)行邏輯判斷和流程控制的操作,則顯得力不從心,如自動(dòng)替換多個(gè)不同的內(nèi)容時(shí),按錄制“宏”的方式操作,需要按替換內(nèi)容的數(shù)量錄制多個(gè)“宏”,且每個(gè)“宏”僅可用于某個(gè)內(nèi)容的替換,反而為工作增添了麻煩。錄制“宏”存在很多局限性,除無(wú)法進(jìn)行邏輯判斷和流程控制操作外,還包括很多。如交互能力較差、無(wú)法顯示Office的內(nèi)置對(duì)話(huà)框、無(wú)法顯示用戶(hù)自定義的

5、窗體和無(wú)法創(chuàng)建復(fù)雜的工具欄或修改菜單等。4.VBA編輯環(huán)境雖然“宏”存在很多局限性,但通過(guò)錄制“宏”獲取了VBA代碼后即可通過(guò)VBA編輯器來(lái)為代碼添加邏輯控制并設(shè)計(jì)流程等。以Word 2002為例,“宏”錄制完成后,可在運(yùn)行宏對(duì)話(huà)框中選擇錄制的宏并單擊“編輯”按鈕,即可顯示VBA編輯環(huán)境,如圖2所示。VBA編輯環(huán)境由工程資源管理器、屬性窗口和代碼編輯/窗體設(shè)計(jì)窗口等部分組成。在工程資源管理器中列出當(dāng)前打開(kāi)的所有VBA項(xiàng)目,屬性窗口用于設(shè)置相關(guān)對(duì)象的屬性,代碼編輯/窗體設(shè)計(jì)窗口則可輸入模塊的代碼或編輯窗體和類(lèi)模塊。二、VBA開(kāi)發(fā)共用對(duì)象詳解VBA和其他面向?qū)ο蟮拈_(kāi)發(fā)語(yǔ)言類(lèi)似,同樣有非常多的對(duì)象組

6、成,且不同的Office成員即提供了大量的開(kāi)發(fā)對(duì)象,如工具欄、Office助手、內(nèi)置對(duì)話(huà)框和窗體等。(一)工具欄及其控件對(duì)象在Office中通過(guò)VBA開(kāi)發(fā)工具欄和菜單,需使用Office提供的CommandBar、CommandBarButton、CommandBarComboBox等對(duì)象,這些對(duì)象即代表工具欄、工具欄按鈕和工具欄下拉框,通過(guò)這些對(duì)象可編制出各類(lèi)復(fù)雜的工具欄或菜單。1.CommandBars集合該集合代表Office所有的工具欄,可用名稱(chēng)或索引號(hào)指定菜單欄或工具欄,但僅可用名稱(chēng)指定一個(gè)菜單、快捷菜單或子菜單。如兩個(gè)或兩個(gè)以上自定義菜單或子菜單名稱(chēng)相同,則返回第一個(gè)具有該名稱(chēng)的對(duì)

7、象。其Add方法用于新建一個(gè)工具欄,并返回 CommandBar對(duì)象。語(yǔ)法:expression.Add(Name, Position, MenuBar, Temporary)參數(shù)說(shuō)明:Name為可選的Variant 類(lèi)型,代表新工具欄的名稱(chēng)。如果省略,則使用默認(rèn)的名稱(chēng);Position為可選的Variant 類(lèi)型,代表新工具欄的位置。該參數(shù)值可通過(guò)VBA常量進(jìn)行設(shè)置,如msoBarLeft、msoBarTop、msoBarRight、msoBarBottom常量(設(shè)置新工具欄位于軟件工具欄中位置);msoBarFloating常量(代表新工具欄可移動(dòng));msoBarPopup常量(代表新工具

8、欄為快捷菜單)等;MenuBar為可選的Variant 類(lèi)型,用于設(shè)置是否用新工具欄替換活動(dòng)工具欄;Temporary為可選的Variant 類(lèi)型,用于設(shè)置新工具欄是否暫時(shí)有效。2.CommandBar對(duì)象該對(duì)象代表應(yīng)用程序中的工具欄,新建工具欄的控件均以該對(duì)象為載體。(1)Controls屬性:返回CommandBarControls對(duì)象,代表指定工具欄中的所有控件。(2)NameLocal屬性:返回由應(yīng)用程序版本語(yǔ)言所設(shè)置的工具欄名稱(chēng),如對(duì)軟件的內(nèi)置工具欄設(shè)置會(huì)出現(xiàn)錯(cuò)誤。(3)Position屬性:返回或設(shè)置工具欄的位置,值可通過(guò)VBA常量進(jìn)行設(shè)置,如msoBarLeft、msoBarTo

9、p、msoBarRight、msoBarBottom、msoBarFloating、msoBarPopup或msoBarMenu等。(4)Type屬性:返回或設(shè)置工具欄的類(lèi)型,值可通過(guò)VBA常量進(jìn)行設(shè)置,如msoBarTypeNormal(工具欄為普通類(lèi)型)、msoBarTypeMenuBar(工具欄為菜單類(lèi)型)、msoBarTypePopup(工具欄為彈出菜單類(lèi)型)等。(5)Reset方法:將內(nèi)置工具欄重置為默認(rèn)設(shè)置,在恢復(fù)軟件原有工具欄或菜單時(shí)非常有用。重置內(nèi)置工具欄將刪除其中的自定義控件并恢復(fù)其內(nèi)置控件。3.CommandBarControls集合該集合代表工具欄中的所有工具欄控件。其A

10、dd方法用于在CommandBarControls集合中增加一個(gè)工具欄控件。4.CommandBarControl對(duì)象該對(duì)象代表工具欄控件,對(duì)自定義工具欄控件,可使用 CommandBarButton、CommandBarComboBox和CommandBarPopup對(duì)象進(jìn)行定義,而對(duì)軟件內(nèi)置的控件進(jìn)行操作,而該控件又無(wú)法使用上述三個(gè)對(duì)象表示,則可使用CommandBarControl對(duì)象。(1)BeginGroup屬性:用于設(shè)置工具欄控件是否分組顯示。(2)Caption屬性:用于設(shè)置工具欄控件的標(biāo)題文字,并可作為默認(rèn)的控件屏幕提示。(3)Id屬性:用于設(shè)置CommandBarButton

11、、CommandBarComboBox和CommandBarControl對(duì)象的功能,這些控件可直接設(shè)置為內(nèi)置工具欄控件的ID,這樣該控件即具備了軟件內(nèi)置的相應(yīng)功能,自定義控件的ID屬性均需設(shè)置為1。(4)Copy方法:將工具欄控件復(fù)制到已有的工具欄中。語(yǔ)法:expression.Copy(Bar, Before)參數(shù)說(shuō)明:Bar為可選的Variant 類(lèi)型,代表目標(biāo)工具欄,如果省略,則控件將復(fù)制到自身所在的工具欄;Before為可選的Variant 類(lèi)型,代表新控件在指定工具欄的位置,即新控件將添加至該位置的控件前,如果省略,則控件將復(fù)制到工具欄的末尾。(5)Type屬性:返回工具欄控件的類(lèi)

12、型,可通過(guò)VBA常量進(jìn)行引用,常用的工具欄控件類(lèi)型如下表所示:常量名稱(chēng)含義msoControlButton控制按鈕msoControlButtonDropdown帶下拉列表的按鈕msoControlButtonPopup帶彈出菜單的按鈕msoControlComboBox下拉組合控制框msoControlDropdown下拉列表控制框msoControlEdit文本框msoControlExpandingGrid可擴(kuò)展的表格msCntrolGraphicCombo圖像下拉組合框msoControlGraphicDropdown圖像下拉列表框msoControlGrid表格msoControlP

13、opup彈出菜單5.CommandBarButton對(duì)象該對(duì)象代表工具欄的按鈕控件。(1)OnAction屬性:返回或設(shè)置Visual Basic代碼過(guò)程名(該代碼過(guò)程不可使用參數(shù)),該過(guò)程將在單擊按鈕后運(yùn)行。(2)Style屬性:返回或設(shè)置工具欄按鈕的顯示方式。值可通過(guò)VBA常量進(jìn)行設(shè)置,常用的工具欄按鈕控件類(lèi)型如下表所示:常量名稱(chēng)含義msoButtonIcon包含圖標(biāo)的按鈕msoButtonCaption包含標(biāo)題的按鈕ButtonIconandCaption包含圖標(biāo)和標(biāo)題的按鈕msoButtonIconAndCaptionBelow包含圖標(biāo)和標(biāo)題,且標(biāo)題位于底部的按鈕msoButtonIc

14、onAndWrapCaption包含圖標(biāo)和標(biāo)題,且標(biāo)題自動(dòng)換行的按鈕msoButtonWrapCaption包含標(biāo)題,且標(biāo)題自動(dòng)換行的按鈕(3)TooltipText屬性:返回或設(shè)置工具欄按鈕控件的屏幕提示。(4)FaceId屬性:返回或設(shè)置工具欄按鈕的圖標(biāo)編號(hào),設(shè)置工具欄按鈕的外觀而非其功能,自定義圖標(biāo)的工具欄按鈕,其 FaceId屬性值為 0。(5)CopyFace方法:將工具欄按鈕控件的圖標(biāo)復(fù)制到剪貼板。(6)PasteFace方法:將剪貼板的圖標(biāo)內(nèi)容粘貼至工具欄按鈕控件。(7)Execute方法:運(yùn)行工具欄控件對(duì)應(yīng)的過(guò)程或內(nèi)置命令。6.CommandBarComboBox對(duì)象該對(duì)象代表

15、工具欄中的組合框控件。(1)DropDownLines屬性:返回或設(shè)置組合框控件的行數(shù),如將其設(shè)置為 0,則控件行數(shù)將取決于列表的條目數(shù)。(2)List屬性:返回或設(shè)置組合框控件中某列表項(xiàng)的值,對(duì)內(nèi)置組合框控件只讀。(3)OnAction屬性:返回或設(shè)置Visual Basic代碼過(guò)程名(該代碼過(guò)程不可使用參數(shù)),該過(guò)程在單擊或更改組合框控件值時(shí)運(yùn)行。(4)Type屬性:返回或設(shè)置組合框控件的顯示方式。(5)AddItem方法:用于在組合框控件中添加一個(gè)列表項(xiàng),且該組合框控件必須為自定義的控件。(6)RemoveItem方法:用于從組合框控件中刪除一個(gè)列表項(xiàng)。(二)助手對(duì)象Office助手是一

16、組卡通動(dòng)畫(huà)人物,這些助手可提供友好的信息提示,并可通過(guò)自定義對(duì)話(huà)框(又稱(chēng)“氣球”)的文字格式和控件來(lái)實(shí)現(xiàn)簡(jiǎn)單的交互。1.Assistant對(duì)象該對(duì)象代表Office助手,可通過(guò)Application對(duì)象的Assistant屬性返回Assistant對(duì)象。默認(rèn)助手為“大眼夾”(即“Clippit”),用戶(hù)可在右鍵單擊助手后出現(xiàn)的快捷菜單中單擊“選擇助手”菜單項(xiàng),在彈出的“Office助手”對(duì)話(huà)框中即可選擇不同的助手。(1)Animation屬性:用于返回或設(shè)置Office 助手的動(dòng)畫(huà)效果。如應(yīng)用于 Balloon對(duì)象,則“助手”僅在顯示氣球時(shí)才會(huì)出現(xiàn)動(dòng)作,可通過(guò)常量賦值,常用的常量及其含義如下表

17、所示:常量名稱(chēng)代表的動(dòng)作msoAnimationAppear助手出現(xiàn)msoAnimationBeginSpeaking助手開(kāi)始說(shuō)話(huà)msoAnimationCheckingSomething助手檢查動(dòng)作msoAnimationDisappear助手消失msoAnimatioGodbye助手說(shuō)“再見(jiàn)”msoAnimationGreeting助手致歡迎的動(dòng)作msoAnimationIdle助手休息的動(dòng)作(為默認(rèn)動(dòng)畫(huà)效果類(lèi)型)msoAnimationPrinting助手打印的動(dòng)作msoAnimationSaving助手保存的動(dòng)作msoAnimationSearching助手開(kāi)始查找的動(dòng)作msoAnim

18、ationThinking助手考慮的動(dòng)作(2)AssistWithAlerts屬性:用于設(shè)置助手氣球是否發(fā)送給應(yīng)用程序警告信息。(3)AssistWithHelp屬性:用于設(shè)置當(dāng)用戶(hù)按F1鍵顯示幫助時(shí)助手是否出現(xiàn)。(4)AssistWithWizards屬性:用于設(shè)置助手是否提供向?qū)偷穆?lián)機(jī)幫助。(5)FeatureTips屬性:用于設(shè)置助手是否更有效地提供有關(guān)應(yīng)用程序功能信息。(6)GuessHelp屬性:用于設(shè)置助手是否顯示幫助主題列表。(7)FileName屬性:用于設(shè)置助手所使用的文件名,助手文件的擴(kuò)展名為“acs”,一般位于Office的安裝目錄下。其中“孫悟空”為mnkyking.

19、acs;“大眼夾”為Clippit.acs;“戀戀”為OffCat.acs;“聰聰”為Rocky.acs;“七巧板”為L(zhǎng)ogo.acs;“小靈通”Dot.acs;“美麗家園”為MNature.acs;“F1”為F1.acs。(8)NewBalloon屬性:用于新建助手氣球,并返回Balloon對(duì)象。(9)On屬性:用于設(shè)置是否使用助手。(10)Sounds屬性:用于設(shè)置助手是否發(fā)出與動(dòng)畫(huà)對(duì)應(yīng)的聲音。(11)TipOfDay屬性:用于設(shè)置每次啟動(dòng)Office時(shí),助手是否顯示專(zhuān)用的提示。2.Balloon對(duì)象該對(duì)象代表氣球,助手可在該氣球中顯示標(biāo)題、文字和一些控件,通過(guò)NewBalloon屬性可返

20、回Balloon對(duì)象,且任意時(shí)刻僅有一個(gè)氣球可視。(1)BalloonType屬性:用于設(shè)置助手所用的氣球類(lèi)型,可通過(guò)常量賦值。創(chuàng)建Balloon對(duì)象時(shí),初始值為msoBalloonTypeButtons常量。(2)Button屬性:用于設(shè)置助手氣球底部按鈕類(lèi)型。創(chuàng)建Balloon對(duì)象時(shí),初始值為msoButtonSetOK。(3)Icon屬性:用于設(shè)置助手氣球左上角的圖標(biāo)類(lèi)型,可通過(guò)常量賦值。(4)Checkboxes屬性:返回BalloonCheckboxes集合,即氣球中的所有復(fù)選框。(5)Heading屬性:用于設(shè)置助手氣球中的標(biāo)題。氣球標(biāo)題和文本均支持包含下劃線(xiàn)和系統(tǒng)調(diào)色板16色的文

21、字。如需顯示包含下劃線(xiàn)的文字,可通過(guò)“ul”、“ul 1”語(yǔ)法來(lái)開(kāi)始下劃線(xiàn)和“ul 0” 語(yǔ)法來(lái)清除下劃線(xiàn);如需改變文字顏色,可通過(guò)“cf number”語(yǔ)法,其中number常數(shù)為系統(tǒng)調(diào)色板支持的16種顏色。(6)Labels屬性:返回BalloonLabels 集合,即氣球中的所有標(biāo)簽。(7)Mode屬性:用于設(shè)置氣球的模態(tài),即是否在顯示氣球的同時(shí)允許用戶(hù)在程序中繼續(xù)工作。(8)Text屬性:用于設(shè)置助手在氣球標(biāo)簽、復(fù)選框或直接顯示部分的文字。(9)Close方法:用于關(guān)閉活動(dòng)的非模態(tài)氣球,僅在回調(diào)過(guò)程中才可使用。(10)Show方法:用于顯示指定的氣球?qū)ο蟆?.BalloonCheckB

22、ox對(duì)象該對(duì)象代表氣球中的復(fù)選框控件。Checked屬性:返回是否已選擇氣球中的指定復(fù)選框。(三)內(nèi)置對(duì)話(huà)框?qū)ο驩ffice使用了大量的內(nèi)置對(duì)話(huà)框,在Word和Excel中提供了開(kāi)發(fā)接口,使開(kāi)發(fā)者可充分利用內(nèi)置對(duì)話(huà)框?qū)崿F(xiàn)很多操作,尤其在Word中可使用多種方法顯示內(nèi)置對(duì)話(huà)框,實(shí)現(xiàn)不同的功能需求,這里,我們以Word的內(nèi)置對(duì)話(huà)框?yàn)槔M(jìn)行講解。1.Dialogs集合對(duì)象該集合對(duì)象代表Word或Excel中的Dialog對(duì)象集合,其中每個(gè)Dialog對(duì)象均代表一個(gè)內(nèi)置對(duì)話(huà)框,無(wú)法在Dialogs集合中創(chuàng)建新的內(nèi)置對(duì)話(huà)框,也無(wú)法添加對(duì)話(huà)框。2.Dialog對(duì)象該對(duì)象代表內(nèi)置對(duì)話(huà)框。(1)Command

23、Name屬性:用于返回顯示指定內(nèi)置對(duì)話(huà)框?qū)?yīng)的過(guò)程名。(2)DefaultTab屬性:用于設(shè)置顯示指定對(duì)話(huà)框時(shí),其被激活的選項(xiàng)卡。(3)Display方法:用于顯示指定的內(nèi)置對(duì)話(huà)框,并直至用戶(hù)關(guān)閉該對(duì)話(huà)框或超時(shí),使用顯示內(nèi)置對(duì)話(huà)框時(shí),不會(huì)執(zhí)行任何操作(即僅用于顯示),但可返回用戶(hù)關(guān)閉對(duì)話(huà)框時(shí)所單擊的按鈕代號(hào)。其中,返回-2,代表“關(guān)閉”按鈕;返回-1,代表“確定”按鈕;返回0,代表“取消”按鈕;返回大于 0的值,則1代表第一個(gè)按鈕,2代表第二個(gè)按鈕,以此類(lèi)推。(4)Execute方法:用于應(yīng)用內(nèi)置對(duì)話(huà)框的當(dāng)前設(shè)置。(5)Show方法:用于顯示并執(zhí)行內(nèi)置對(duì)話(huà)框,即如同用戶(hù)通過(guò)菜單或工具欄打開(kāi)對(duì)話(huà)

24、框,和Display方法相同,均返回用戶(hù)關(guān)閉對(duì)話(huà)框時(shí)所單擊的按鈕代號(hào)。(6)Update方法:用于更新內(nèi)置對(duì)話(huà)框的參數(shù)值。3.顯示內(nèi)置對(duì)話(huà)框通過(guò)VBA代碼可控制內(nèi)置對(duì)話(huà)框的顯示,如需調(diào)用指定的內(nèi)置對(duì)話(huà)框,可將Dialogs屬性通過(guò)常量進(jìn)行賦值,如“Dialogs(wdDialogFileOpen).Show”可顯示W(wǎng)ord的“打開(kāi)”對(duì)話(huà)框。在前述代碼中,如將該語(yǔ)句的返回值賦予Dialog變量,即可通過(guò)該變量返回或設(shè)置對(duì)話(huà)框的選項(xiàng),代碼如下所示:Set testDialog = Dialogs(wdDialogFileOpen)合理使用內(nèi)置對(duì)話(huà)框可實(shí)現(xiàn)很多的功能,Word和Excel中提供接口的

25、內(nèi)置對(duì)話(huà)框非常多,限于篇幅,本文不做詳細(xì)介紹,讀者可參考VBA的聯(lián)機(jī)幫助。(四)窗體和相關(guān)控件對(duì)象VBA的編輯器和VB非常類(lèi)似,因此也提供了窗體和相關(guān)的控件,但又由于Office的特點(diǎn)使VBA中的窗體、控件和VB存在一些差異。1.用戶(hù)窗體知識(shí)點(diǎn)窗體是程序?qū)崿F(xiàn)和用戶(hù)交互的接口,通過(guò)窗體不僅可改善程序的界面友好性,而且可進(jìn)一步增強(qiáng)、完善程序的功能。在VBA編輯器中可創(chuàng)建用戶(hù)窗體,在工程資源管理器中右鍵單擊項(xiàng)目,在出現(xiàn)的菜單中選擇“插入用戶(hù)窗體”命令,隨后在設(shè)計(jì)界面中將顯示默認(rèn)窗體和控件工具箱,該控件工具箱和VB的控件工具箱很類(lèi)似,如圖3所示。2.用戶(hù)窗體常用控件雖然VBA窗體開(kāi)發(fā)所用的控件和VB較

26、為類(lèi)似,但其屬性和方法和VB存在一定的差異:(1)標(biāo)簽控件:該控件用于顯示不可編輯的文本,默認(rèn)屬性為Caption屬性,默認(rèn)事件為Click事件。(2)文本框控件:該控件用于顯示可編輯的文本信息,是VBA開(kāi)發(fā)中最常用編輯控件,默認(rèn)屬性為Value屬性,默認(rèn)事件為Change事件。(3)復(fù)合框控件:該控件將列表框和文本框進(jìn)行結(jié)合,用戶(hù)可進(jìn)行輸入和列表框選擇操作,默認(rèn)屬性為Value屬性,默認(rèn)事件為Change事件。(4)列表框控件:該控件用于顯示值列表,用戶(hù)可選擇一個(gè)或多個(gè)列表項(xiàng),VBA中的列表框可通過(guò)列表形式和選項(xiàng)按鈕或復(fù)選框的形式使用,默認(rèn)屬性為Value屬性,默認(rèn)事件為Click事件。(5

27、)復(fù)選框控件:該控件用于顯示選擇的狀態(tài),即允許用戶(hù)從兩個(gè)值(如True或False)中選擇一個(gè)。如選擇則將顯示標(biāo)記,默認(rèn)屬性為Value屬性,默認(rèn)事件為Click事件。(6)選項(xiàng)按鈕控件:該控件用于顯示多選項(xiàng)中每一項(xiàng)的選擇狀態(tài),默認(rèn)屬性為Value屬性,默認(rèn)事件為Click事件。(7)切換按鈕控件:該控件用于顯示選擇狀態(tài),默認(rèn)屬性為Value屬性,默認(rèn)事件為Click事件。(8)框架控件:該控件用于創(chuàng)建功能或視覺(jué)角度的控件組,默認(rèn)事件為Click事件。(9)命令按鈕控件:該控件用于啟動(dòng)、結(jié)束或中斷操作,其Click事件是窗體編程中最常用的事件代碼,默認(rèn)屬性為Value屬性,默認(rèn)事件為Click

28、事件。(10)表頭控件:該控件用于將一系列相關(guān)控件顯示為一個(gè)多表的集合,默認(rèn)屬性為SelectedItem屬性,默認(rèn)事件為Change事件。(11) 多頁(yè)控件:該控件用于將多頁(yè)面的內(nèi)容以單個(gè)控件的方式實(shí)現(xiàn),在處理不同類(lèi)別的大量信息時(shí)很有用,默認(rèn)事件為Change事件。(12)滾動(dòng)條控件:該控件用于按滾動(dòng)塊位置,返回或設(shè)置變量值,默認(rèn)屬性為Value屬性,默認(rèn)事件為Change事件。如需創(chuàng)建橫向或縱向的滾動(dòng)條,可在窗體設(shè)計(jì)時(shí)橫向或縱向拖動(dòng)滾動(dòng)條控制點(diǎn)。(13)旋轉(zhuǎn)按鈕控件:該控件用于增加及減少變量數(shù)值,默認(rèn)屬性為Value屬性,默認(rèn)事件為Change事件。(14)圖像控件:該控件用于顯示圖片,其

29、支持的圖片文件格式包括:bmp、cur、gif、ico、jpg和wmf等,默認(rèn)事件為Click事件。在VBA窗體設(shè)計(jì)中,可將一些開(kāi)發(fā)中使用的控件全部選擇后,直接拖至工具箱中,工具箱會(huì)添加一個(gè)“控件組”,在窗體設(shè)計(jì)中可直接將該控件組放置于窗體,大大提高了效率(該特點(diǎn)為VBA所獨(dú)有)。如開(kāi)發(fā)者需使用VBA標(biāo)準(zhǔn)控件箱未提供的其他控件,可右鍵單擊工具箱,在出現(xiàn)的菜單中選擇“附加控件”命令,在出現(xiàn)的對(duì)話(huà)框中進(jìn)行選擇即可。3.用戶(hù)窗體常用事件用戶(hù)窗體的常用事件和VB窗體有一定的區(qū)別。(1)Initialize事件:該事件發(fā)生在加載對(duì)象后和顯示對(duì)象前,通常在該事件中初始化變量值或設(shè)置控件的屬性。(2)Que

30、ryClose事件:該事件發(fā)生在用戶(hù)窗體關(guān)閉前,通常在該事件中檢查用戶(hù)窗體中未完成的操作。cancel參數(shù):整型,如將該參數(shù)設(shè)置未非零值,則可阻止關(guān)閉用戶(hù)窗體。Closemode參數(shù):該參數(shù)用于獲取觸發(fā)QueryClose事件的原因。(3)Terminate事件:該事件將所有引用的對(duì)象變量設(shè)置為Nothing常量,即刪除對(duì)象的引用。該事件發(fā)生在卸載對(duì)象后。如非正常退出程序,則不會(huì)觸發(fā)。(五)類(lèi)模塊VBA開(kāi)發(fā)也提供了類(lèi)模塊結(jié)構(gòu),使開(kāi)發(fā)者可將常用操作通過(guò)類(lèi)進(jìn)行合理封裝,實(shí)現(xiàn)代碼的復(fù)用和程序的結(jié)構(gòu)化。1.創(chuàng)建類(lèi)模塊VBA中創(chuàng)建類(lèi)模塊非常簡(jiǎn)單,在VBA編輯器的工程資源管理器中右鍵單擊項(xiàng)目,在出現(xiàn)的菜單

31、中選擇“插入類(lèi)模塊”命令,隨后在“工程資源管理器”中會(huì)出現(xiàn)添加的類(lèi)模塊,默認(rèn)名稱(chēng)為“類(lèi)1”,單擊該類(lèi)模塊,可設(shè)置其屬性,一般需設(shè)置其“Name”屬性,以方便使用。雙擊該類(lèi)模塊,即可按窗體的操作方法來(lái)輸入代碼。2.類(lèi)模塊常用事件類(lèi)模塊中包含Initialize和Terminate二個(gè)事件。(1)Initialize事件:該事件用于初始化類(lèi)模塊所用的數(shù)據(jù)。當(dāng)程序中創(chuàng)建類(lèi)模塊時(shí)觸發(fā)該事件。(2)Terminate事件:當(dāng)程序中類(lèi)實(shí)例從內(nèi)存刪除時(shí)觸發(fā)該事件,且該事件僅在程序正常結(jié)束時(shí)觸發(fā)。三、Office XP開(kāi)發(fā)對(duì)象知識(shí)詳解VBA程序的開(kāi)發(fā)主要由大量的對(duì)象組成。這里,我們精選了常用的Office V

32、BA開(kāi)發(fā)常用對(duì)象的知識(shí),以方便讀者速查。(一)Word 2002開(kāi)發(fā)對(duì)象1.Application對(duì)象該對(duì)象代表 Word 應(yīng)用程序,通過(guò)該對(duì)象可訪(fǎng)問(wèn)Word中的其他所有對(duì)象。(1)ActiveDocument屬性:返回Document對(duì)象,代表活動(dòng)文檔。(2)ActivePrinter屬性:返回或設(shè)置當(dāng)前打印機(jī)的名稱(chēng)。(3)ActiveWindow屬性:返回Window對(duì)象,代表活動(dòng)窗口。(4)Documents屬性:返回Documents集合,代表所有打開(kāi)文檔。(5)Selection屬性:返回Selection對(duì)象,代表已選擇的范圍或插入點(diǎn)。(6)Windows屬性:返回Windows集

33、合,代表所有文檔窗口。(7)Activate方法:用于激活指定的對(duì)象。(8)PrintOut方法:打印全部或部分的文檔。(9)Quit方法:用于退出Word程序。2.Document對(duì)象該對(duì)象代表Word中打開(kāi)的文檔。通過(guò)“Documents(index)”的語(yǔ)法可獲取Document對(duì)象,其中index參數(shù)代表文檔的名稱(chēng)或索引號(hào),此外還可用ActiveDocument屬性獲取當(dāng)前編輯的文檔。(1)AttachedTemplate屬性:返回Template對(duì)象,代表活動(dòng)文檔關(guān)聯(lián)的模板。(2)BuiltInDocumentProperties屬性:返回DocumentProperties集合,代

34、表指定文檔的所有內(nèi)置屬性,如作者、主題或關(guān)鍵詞等。(3)Characters屬性:返回Characters集合,代表文檔中的字符。(4)Tables屬性:返回Tables集合,代表文檔中所有的表格。(5)CheckGrammar方法:檢查字符串是否存在語(yǔ)法錯(cuò)誤。(6)CheckSpelling方法:用于檢查字符串是否存在拼寫(xiě)錯(cuò)誤。(7)ComputeStatistics方法:用于獲取指定文檔的統(tǒng)計(jì)數(shù)據(jù),如字?jǐn)?shù)、頁(yè)數(shù)等。(8)PrintPreview方法:在打印預(yù)覽和視圖方式間進(jìn)行切換。(9)Save方法:用于保存文檔或模板。(10)Undo方法:用于撤消文檔的最后一次操作。3.Bookmark

35、對(duì)象該對(duì)象是Bookmarks集合中的元素,代表文檔中的書(shū)簽。通過(guò)“Bookmarks( index )”的語(yǔ)法可獲取Bookmark對(duì)象,其中index參數(shù)代表書(shū)簽名稱(chēng)或索引號(hào)。(1)Select方法:用于選擇指定的書(shū)簽。(2)Delete方法:用于刪除指定的書(shū)簽。4.Field對(duì)象該對(duì)象是Fields集合中的元素,代表文檔中的域。通過(guò)“Fields(index) ”的語(yǔ)法可獲取Field對(duì)象。5.Template對(duì)象該對(duì)象是Templates集合中的元素,代表文檔模板。通過(guò)“Templates(index)”的語(yǔ)法可獲取Template對(duì)象。6.FontNames對(duì)象該對(duì)象代表有效的字體名

36、稱(chēng)列表。通過(guò)FontNames、LandscapeFontNames 或 PortraitFontNames屬性可獲取FontNames對(duì)象。7.Options對(duì)象該對(duì)象代表 Word 的應(yīng)用程序和文檔選項(xiàng)。8.AutoTextEntries集合對(duì)象和AutoTextEntry對(duì)象AutoTextEntries集合對(duì)象由AutoTextEntry對(duì)象組成,代表模板中所有的“自動(dòng)圖文集”詞條。AutoTextEntry對(duì)象代表單一的“自動(dòng)圖文集”詞條。Insert方法:用于在指定的范圍中通過(guò)插入“自動(dòng)圖文集”詞條的方式來(lái)替換原內(nèi)容。9.Selection對(duì)象該對(duì)象代表當(dāng)前文檔的選擇內(nèi)容,可為區(qū)域

37、或插入點(diǎn),每個(gè)文檔僅有一個(gè) Selection對(duì)象,且任意時(shí)刻僅可激活一個(gè)Selection對(duì)象,通過(guò)Selection屬性可獲取Selection對(duì)象。(1)Text屬性:返回或設(shè)置所選內(nèi)容中的文本。(2)Copy方法:將指定對(duì)象復(fù)制到剪貼板。(3)Paste方法:將剪貼板內(nèi)容粘貼至選擇區(qū)域。(4)TypeParagraph方法:用于插入新段落,等同于在編輯時(shí)按回車(chē)鍵。(5)TypeText方法:用于插入指定的文本。(6)WholeStory方法:用于擴(kuò)展選擇內(nèi)容,并包含整個(gè)文字部分。(7)GoTo方法:將插入點(diǎn)移至指定位置。(8)HomeKey方法:等同于按下“Home”鍵。(9)EndK

38、ey方法:等同于按下“End”鍵。(二)Excel 2002開(kāi)發(fā)對(duì)象1.Application對(duì)象該對(duì)象代表Excel應(yīng)用程序,通過(guò)該對(duì)象可訪(fǎng)問(wèn)Excel中的其他所有對(duì)象。(1)ActiveCell屬性:返回Range對(duì)象,代表活動(dòng)窗口或指定窗口的活動(dòng)單元格。(2)ActiveChart屬性:返回Chart對(duì)象,代表活動(dòng)圖表。(3)ActiveSheet屬性:返回WorkSheet對(duì)象,代表活動(dòng)工作簿中的活動(dòng)工作表。(4)ActiveWorkbook屬性:返回Workbook對(duì)象,代表活動(dòng)的工作簿。(5)Cells屬性:返回 Range對(duì)象,代表活動(dòng)工作簿中所有單元格。 (6)Charts屬性

39、:返回Sheets集合,代表活動(dòng)工作簿中所有圖表。(7)Range屬性:返回Range對(duì)象,代表單元格或單元格區(qū)域。(8)Sheets屬性:返回Sheets集合,代表當(dāng)前工作簿的所有工作表。(9)StatusBar屬性:返回狀態(tài)欄的文本。 (10)Workbooks屬性:返回Workbooks集合,代表所有打開(kāi)的工作簿。(11)Worksheets屬性:返回Sheets集合,代表活動(dòng)工作簿的所有工作表。(12)Calculate方法:用于對(duì)指定區(qū)域的單元格進(jìn)行計(jì)算。(13)Evaluate方法:用于將字符串的值進(jìn)行轉(zhuǎn)義操作,即可將以字符串表示的運(yùn)算式進(jìn)行求解的操作。(14)InputBox方法

40、:用于顯示接收輸入的對(duì)話(huà)框,并返回對(duì)話(huà)框中輸入的信息。(15)Quit方法:用于退出Excel應(yīng)用程序。2AddIn對(duì)象該對(duì)象代表加載宏,通過(guò)“AddIns(index)”語(yǔ)法可返回AddIn對(duì)象,其中index參數(shù)為加載宏標(biāo)題或編號(hào)。FullName屬性:返回加載宏的文件名。3.Chart對(duì)象該對(duì)象代表工作簿中的圖表,包括嵌入式圖表和單獨(dú)的圖表。(1)ChartArea屬性:返回ChartArea對(duì)象,代表指定圖表中的全部圖表區(qū)域。(2)ChartTitle屬性:返回ChartTitle對(duì)象,代表指定圖表的標(biāo)題。(3)ChartType屬性:返回或設(shè)置圖表的類(lèi)型。(4)DataTable屬性

41、:返回DataTable對(duì)象,代表圖表數(shù)據(jù)表。(5)Walls屬性:返回Walls對(duì)象,代表三維圖表的背景墻。4.Workbook對(duì)象該對(duì)象代表工作簿。(1)Styles屬性:返回Styles集合,代表指定工作簿的所有樣式。(2)Add方法:用于新建工作簿,并將其設(shè)置為活動(dòng)工作簿。(3)Open方法:用于打開(kāi)工作簿。(4)OpenText方法:用于載入文本文件,并將其進(jìn)行分列處理,然后在工作表中插入經(jīng)過(guò)分列處理的文本數(shù)據(jù)。5.Worksheet對(duì)象該對(duì)象代表工作表,通過(guò)“Worksheets(index)”的語(yǔ)法可獲取Worksheet對(duì)象,其中index參數(shù)工作表索引號(hào)或名稱(chēng)。(1)Auto

42、Filter屬性:用于設(shè)置是否進(jìn)行篩選。(2)UsedRange屬性:返回Range對(duì)象,代表指定工作表中的已用區(qū)域。(3)PrintOut方法:用于打印指定的對(duì)象。(4)PrintPreview方法:將切換之打印預(yù)覽視圖。(5)Select方法:用于選擇指定的對(duì)象。6.Range對(duì)象該對(duì)象代表選擇區(qū)域,是Excel開(kāi)發(fā)中一個(gè)常用的對(duì)象。(1)Address屬性:返回對(duì)指定區(qū)域的引用名稱(chēng)。(2)Areas屬性:返回Areas集合,代表多重選擇區(qū)域中的所有區(qū)域。(3)Column屬性:返回第一塊指定區(qū)域中的第一列的序號(hào)。(4)Columns屬性:返回Range對(duì)象,代表指定區(qū)域中的所有列。(5)

43、ColumnWidth屬性:返回或設(shè)置指定區(qū)域中所有列的列寬。(6)Formula屬性:用于設(shè)置Range對(duì)象使用的公式。(7)MergeArea屬性:返回Range對(duì)象,代表指定單元格的合并范圍。(8)MergeCells屬性:返回區(qū)域中是否包含合并單元格。(9)NumberFormat屬性:返回或設(shè)置指定對(duì)象的格式代碼。(10)Row屬性:返回第一塊指定區(qū)域中的第一行的序號(hào)。(11)Rows屬性:返回Range對(duì)象,代表指定區(qū)域中的所有行。(12)Activate方法:用于激活對(duì)象。(13)ApplyNames方法:用于將名稱(chēng)應(yīng)用于指定的單元格。(14)AutoFill方法:用于對(duì)指定的單

44、元格進(jìn)行自動(dòng)填充。(15)AutoFit方法:用于將列寬和行高調(diào)整為適當(dāng)值。(16)Find方法:用于在區(qū)域內(nèi)查找特定信息,并返回代表第一個(gè)包含所查找信息的單元格。(17)Merge方法:用于從指定的Range對(duì)象中創(chuàng)建合并單元格。(18)Replace方法:用于在指定區(qū)域內(nèi)查找和替換。(19)Subtotal方法:用于創(chuàng)建指定區(qū)域內(nèi)的分類(lèi)匯總。(三)PowerPoint 2002開(kāi)發(fā)對(duì)象1.Application對(duì)象該對(duì)象代表PowerPoint應(yīng)用程序,通過(guò)該對(duì)象可訪(fǎng)問(wèn)PowerPoint中的其他所有對(duì)象。(1)Active屬性:返回指定窗格是否被激活。(2)ActivePresentat

45、ion屬性:返回Presentation對(duì)象,代表活動(dòng)窗口中打開(kāi)的演示文稿。(3)ActiveWindow屬性:返回DocumentWindow對(duì)象,代表當(dāng)前文檔窗口。(4)Presentations屬性:返回Presentations集合,代表所有打開(kāi)的演示文稿。(5)SlideShowWindows屬性:返回 SlideShowWindows集合,代表所有打開(kāi)的幻燈片放映窗口。(6)Quit方法:用于退出PowerPoint程序。2.DocumentWindow對(duì)象該對(duì)象代表文檔窗口。使用“Windows(index) ”語(yǔ)法可返回DocumentWindow對(duì)象。(1)ActivePan

46、e屬性:返回Pane對(duì)象,代表文檔窗口中的活動(dòng)窗格。(2)Panes屬性:返回Panes集合,代表文檔窗口中的所有窗格。(3)ViewType屬性:返回指定的文檔窗口內(nèi)的視圖類(lèi)型。3.Presentation對(duì)象該對(duì)象代表演示文稿,通過(guò)“Presentations(index)”語(yǔ)法可返回Presentation對(duì)象。(1)BuiltInDocumentProperties屬性:返回DocumentProperties集合,代表演示文稿的所有文檔屬性。(2)ColorSchemes屬性:返回ColorSchemes 集合,代表演示文稿的配色方案。(3)PageSetup屬性:返回PageSet

47、up對(duì)象,用于控制演示文稿的幻燈片頁(yè)面設(shè)置屬性。(4)SlideMaster屬性:返回幻燈片母版對(duì)象。(5)SlideShowSettings屬性:返回SlideShowSettings對(duì)象,代表演示文稿的幻燈片放映設(shè)置。(6)SlideShowWindow屬性:返回幻燈片放映窗口對(duì)象。(7)AddTitleMaster方法:為演示文稿添加標(biāo)題母版。(8)ApplyTemplate方法:對(duì)演示文稿應(yīng)用設(shè)計(jì)模板。4.SlideShowWindow對(duì)象該對(duì)象代表幻燈片放映窗口。IsFullScreen屬性:用于設(shè)置是否全屏顯示幻燈片放映窗口。5.Master對(duì)象該對(duì)象代表幻燈片母版、標(biāo)題母版、講義

48、母版或備注母版。TextStyles屬性:為幻燈片母版返回TextStyles 集合,代表標(biāo)題文本、正文文本和默認(rèn)文本。6.Slide對(duì)象該對(duì)象代表幻燈片。(1)SlideID屬性:返回幻燈片的唯一標(biāo)識(shí)符。(2)SlideIndex屬性:返回幻燈片在Slides集合中的索引號(hào)。7.SlideShowView對(duì)象該對(duì)象代表幻燈片放映窗口中的視圖。(1)AcceleratorsEnabled屬性:用于設(shè)置是否允許在幻燈片放映時(shí)使用快捷鍵。(2)CurrentShowPosition屬性:返回當(dāng)前幻燈片在放映中的位置。(3)DrawLine方法:在指定幻燈片放映視圖中繪制直線(xiàn)。(4)EraseDra

49、wing方法:用于清除通過(guò)DrawLine方法或繪圖筆工具在放映中繪制的直線(xiàn)。(5)GotoSlide方法:用于切換指定幻燈片。四、VBA綜合開(kāi)發(fā)實(shí)例溫馨賀卡向?qū)?一)例程分解本例程是一個(gè)簡(jiǎn)單的賀卡向?qū)В芍苯舆\(yùn)行并可輔助生成簡(jiǎn)單的賀卡。程序主界面與Word的標(biāo)準(zhǔn)向?qū)С绦蝾?lèi)似,單擊“上一步”和“下一步”按鈕或直接單擊窗體左側(cè)的切換按鈕均可直接跳轉(zhuǎn)至相應(yīng)步驟。單擊“取消”按鈕將關(guān)閉向?qū)Т绑w,如圖4所示。單擊“下一步”按鈕切換至下一頁(yè),在該頁(yè)面中可選擇賀卡的節(jié)日并輸入發(fā)送者和接受者的姓名,如圖5所示。單擊“下一步”按鈕切換至下一頁(yè),在該頁(yè)面中可輸入賀詞,如圖6所示。單擊“下一步”按鈕切換至向?qū)С绦?/p>

50、的末一頁(yè),單擊“完成”按鈕即可生成文檔。生成的文檔將包含將用戶(hù)在前述步驟中填寫(xiě)的信息,生成一份簡(jiǎn)單的賀卡。(二)程序知識(shí)點(diǎn)1.向?qū)У木幹圃硐驅(qū)С绦虻谋举|(zhì)即前述的Word模板文件(DOT文件),唯一區(qū)別在于其擴(kuò)展名為“WIZ”,因此編制向?qū)С绦蚴紫刃杈幹颇0宀⒄{(diào)試代碼,在調(diào)試無(wú)誤后將擴(kuò)展名改為“WIZ”即可。向?qū)Ь幹频某R?guī)步驟如下所述:(1)創(chuàng)建向?qū)璧淖詣?dòng)圖文集:向?qū)璧淖詣?dòng)圖文集是包含書(shū)簽的自動(dòng)圖文集,最后生成文檔時(shí)即調(diào)用了預(yù)保存的圖文集,而在Word中用于定位的書(shū)簽對(duì)象,可在需填寫(xiě)輸入內(nèi)容的位置上幫助程序?qū)崿F(xiàn)定位并替換。該步驟是編制向?qū)С绦虻年P(guān)鍵。(2)編輯窗體和模塊:向?qū)С绦蛐柰ㄟ^(guò)

51、窗體來(lái)實(shí)現(xiàn)交互功能,因此通過(guò)合理運(yùn)用控件,完全可設(shè)計(jì)出美觀易用的窗體,然后對(duì)窗體的控件進(jìn)行事件編程,實(shí)現(xiàn)流程控制。窗體設(shè)計(jì)完畢后,需通過(guò)模塊來(lái)保存通用的功能,常用的功能包含生成文檔、替換書(shū)簽和刪除書(shū)簽等。(3)設(shè)置向?qū)С绦蛉肟冢合驅(qū)С绦蛐柰ㄟ^(guò)特定的事件來(lái)觸發(fā),建議在“ThisDocument”對(duì)象的“New”事件中輸入調(diào)用向?qū)С绦蛉肟诘拇a。Document對(duì)象的事件包括New事件(在創(chuàng)建基于模板的文檔時(shí)觸發(fā)。按功能分析,向?qū)С绦蛉肟诩赐ㄟ^(guò)該事件執(zhí)行)、Open 事件(在打開(kāi)文檔時(shí)觸發(fā))和Close事件(在關(guān)閉文檔時(shí)觸發(fā))。2.界面設(shè)計(jì)知識(shí)點(diǎn)(1)向?qū)С绦蛐柚鸩揭龑?dǎo)用戶(hù),因此建議使用多頁(yè)控件(

52、MultiPage)實(shí)現(xiàn)界面切換。(2)VBA的窗體設(shè)計(jì)中未提供類(lèi)似VB的控件數(shù)組功能,因此需訪(fǎng)問(wèn)Controls集合對(duì)象來(lái)控制一些外觀和功能均類(lèi)似的控件。(3)由于從前述知識(shí)點(diǎn)可得向?qū)С绦虮举|(zhì)為模板文件,因此開(kāi)發(fā)者可直接打開(kāi)Word已提供的向?qū)С绦?如“實(shí)用文體向?qū)А钡?,然后通過(guò)工程資源管理器導(dǎo)出其界面窗體,然后在此基礎(chǔ)上進(jìn)行參考和修改,可大大提高編制的效率。(4)Controls集合:窗體的Controls集合代表其包含的全部控件。Controls集合中的每個(gè)控件均有唯一的索引,也可通過(guò)控件名稱(chēng)來(lái)引用。在向?qū)С绦蛑?,為有效地控制功能和外觀均類(lèi)似的控件(如切換按鈕),可通過(guò)名稱(chēng)引用來(lái)枚舉訪(fǎng)

53、問(wèn)窗體的Controls集合,即可控制這些控件。(5)多頁(yè)控件:多頁(yè)控件(MultiPage)是Pages集合的容器,每個(gè)多頁(yè)控件均包含一個(gè)或多個(gè)Page對(duì)象,其常用屬性和方法如下:Value屬性:為多頁(yè)控件默認(rèn)屬性,返回當(dāng)前活動(dòng)頁(yè)面的索引號(hào),從“0”開(kāi)始編號(hào),依此類(lèi)推。Style屬性:用于設(shè)置多頁(yè)控件標(biāo)簽的顯示風(fēng)格,在向?qū)е薪ㄗh設(shè)置為“2”(即不顯示表頭)。(6)Page對(duì)象:該對(duì)象代表多頁(yè)控件的頁(yè)面。每個(gè) Page對(duì)象均可放置不同的控件,以實(shí)現(xiàn)多界面切換的效果,第一個(gè)Page對(duì)象默認(rèn)名稱(chēng)為“Page1”,其常用屬性和方法如下:Picture屬性:用于設(shè)置頁(yè)面的背景圖片。PictureTil

54、ing屬性:用于設(shè)置是否平鋪圖片。PictureSizeMode屬性:用于設(shè)置顯示背景圖片的方式。(三)程序?qū)崿F(xiàn)步驟1.創(chuàng)建向?qū)璧淖詣?dòng)圖文集通過(guò)前述內(nèi)容可得創(chuàng)建向?qū)璧淖詣?dòng)圖文集是關(guān)鍵的步驟,因此首先在編輯界面中輸入相關(guān)的文字,然后在需插入內(nèi)容的位置添加書(shū)簽,最后選擇全部?jī)?nèi)容,以“hk”命名并保存于模板的自動(dòng)圖文集中。如圖7所示:2.編制窗體在VBA編輯器的工程資源管理器中添加窗體,放置多頁(yè)控件、標(biāo)簽、文本框、列表框等控件(也可采用前述的導(dǎo)入并修改的方法來(lái)設(shè)計(jì)窗體),由于該窗體使用的控件較多,限于篇幅,不在逐一介紹,可按效果圖自行設(shè)計(jì),本文僅對(duì)一些需在代碼中使用的控件進(jìn)行介紹。首先切換至多頁(yè)控件的第二頁(yè),該頁(yè)面中需編程的控件位置和名稱(chēng)如圖8所示:如圖8所示,其中“frmHKWiz”為用戶(hù)窗體,“Page1”為多頁(yè)控件的頁(yè)面對(duì)象,“txtfsz”和“txtjsz”均為文本框控件,“shpMap0”至“shpMap3”、“l(fā)blMap0”至“l(fā)blMap3”均為L(zhǎng)abel控件,“l(fā)stjr”為列表框控件。切換至多頁(yè)控件的第三頁(yè),該頁(yè)面中需編程的控件位置和名稱(chēng)如圖9所示:如圖9所示,其中“Page2”為多頁(yè)控件的頁(yè)面對(duì)象,“shpChartPath”為標(biāo)簽控件,“txthc”為文本框控件,“cmdCancel”、“cmdBack”、“cmdNex

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論