|
又是一篇?jiǎng)e人總結(jié)的文章,摘取了其中一部分,其中CommandBar對(duì)象比較有用。
一)工具欄及其控件對(duì)象
在Office中通過(guò)VBA開發(fā)工具欄和菜單,需使用Office提供的CommandBar、CommandBarButton、CommandBarComboBox等對(duì)象,這些對(duì)象即代表工具欄、工具欄按鈕和工具欄下拉框,通過(guò)這些對(duì)象可編制出各類復(fù)雜的工具欄或菜單。
1.CommandBars集合
該集合代表Office所有的工具欄,可用名稱或索引號(hào)指定菜單欄或工具欄,但僅可用名稱指定一個(gè)菜單、快捷菜單或子菜單。如兩個(gè)或兩個(gè)以上自定義菜單或子菜單名稱相同,則返回第一個(gè)具有該名稱的對(duì)象。
其Add方法用于新建一個(gè)工具欄,并返回 CommandBar對(duì)象。
語(yǔ)法:expression.Add(Name, Position, MenuBar, Temporary)
參數(shù)說(shuō)明:
Name為可選的Variant 類型,代表新工具欄的名稱。如果省略,則使用默認(rèn)的名稱;Position為可選的Variant 類型,代表新工具欄的位置。該參數(shù)值可通過(guò)VBA常量進(jìn)行設(shè)置,如msoBarLeft、msoBarTop、msoBarRight、msoBarBottom常量(設(shè)置新工具欄位于軟件工具欄中位置);msoBarFloating常量(代表新工具欄可移動(dòng));msoBarPopup常量(代表新工具欄為快捷菜單)等;MenuBar為可選的Variant 類型,用于設(shè)置是否用新工具欄替換活動(dòng)工具欄;Temporary為可選的Variant 類型,用于設(shè)置新工具欄是否暫時(shí)有效。
2.CommandBar對(duì)象
該對(duì)象代表應(yīng)用程序中的工具欄,新建工具欄的控件均以該對(duì)象為載體。
(1)Controls屬性:返回CommandBarControls對(duì)象,代表指定工具欄中的所有控件。
(2)NameLocal屬性:返回由應(yīng)用程序版本語(yǔ)言所設(shè)置的工具欄名稱,如對(duì)軟件的內(nèi)置工具欄設(shè)置會(huì)出現(xiàn)錯(cuò)誤。
(3)Position屬性:返回或設(shè)置工具欄的位置,值可通過(guò)VBA常量進(jìn)行設(shè)置,如msoBarLeft、msoBarTop、msoBarRight、msoBarBottom、msoBarFloating、msoBarPopup或msoBarMenu等。
(4)Type屬性:返回或設(shè)置工具欄的類型,值可通過(guò)VBA常量進(jìn)行設(shè)置,如msoBarTypeNormal(工具欄為普通類型)、msoBarTypeMenuBar(工具欄為菜單類型)、msoBarTypePopup(工具欄為彈出菜單類型)等。
(5)Reset方法:將內(nèi)置工具欄重置為默認(rèn)設(shè)置,在恢復(fù)軟件原有工具欄或菜單時(shí)非常有用。重置內(nèi)置工具欄將刪除其中的自定義控件并恢復(fù)其內(nèi)置控件。
3.CommandBarControls集合
該集合代表工具欄中的所有工具欄控件。
其Add方法用于在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、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 類型,代表目標(biāo)工具欄,如果省略,則控件將復(fù)制到自身所在的工具欄;Before為可選的Variant 類型,代表新控件在指定工具欄的位置,即新控件將添加至該位置的控件前,如果省略,則控件將復(fù)制到工具欄的末尾。
(5)Type屬性:返回工具欄控件的類型,可通過(guò)VBA常量進(jìn)行引用,常用的工具欄控件類型如下表所示:
常量名稱 含義
msoControlButton 控制按鈕
msoControlButtonDropdown 帶下拉列表的按鈕
msoControlButtonPopup 帶彈出菜單的按鈕
msoControlComboBox 下拉組合控制框
msoControlDropdown 下拉列表控制框
msoControlEdit 文本框
msoControlExpandingGrid 可擴(kuò)展的表格
msoControlGraphicCombo 圖像下拉組合框
msoControlGraphicDropdown 圖像下拉列表框
msoControlGrid 表格
msoControlPopup 彈出菜單
5.CommandBarButton對(duì)象
該對(duì)象代表工具欄的按鈕控件。
(1)OnAction屬性:返回或設(shè)置Visual Basic代碼過(guò)程名(該代碼過(guò)程不可使用參數(shù)),該過(guò)程將在單擊按鈕后運(yùn)行。
(2)Style屬性:返回或設(shè)置工具欄按鈕的顯示方式。值可通過(guò)VBA常量進(jìn)行設(shè)置,常用的工具欄按鈕控件類型如下表所示:
常量名稱 含義
msoButtonIcon 包含圖標(biāo)的按鈕
msoButtonCaption 包含標(biāo)題的按鈕
ButtonIconandCaption 包含圖標(biāo)和標(biāo)題的按鈕
msoButtonIconAndCaptionBelow 包含圖標(biāo)和標(biāo)題,且標(biāo)題位于底部的按鈕
msoButtonIconAndWrapCaption 包含圖標(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ì)象代表工具欄中的組合框控件。
(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助手是一組卡通動(dòng)畫人物,這些助手可提供友好的信息提示,并可通過(guò)自定義對(duì)話框(又稱“氣球”)的文字格式和控件來(lái)實(shí)現(xiàn)簡(jiǎn)單的交互。
1.Assistant對(duì)象
該對(duì)象代表Office助手,可通過(guò)Application對(duì)象的Assistant屬性返回Assistant對(duì)象。默認(rèn)助手為“大眼夾”(即“Clippit”),用戶可在右鍵單擊助手后出現(xiàn)的快捷菜單中單擊“選擇助手”菜單項(xiàng),在彈出的“Office助手”對(duì)話框中即可選擇不同的助手。
(1)Animation屬性:用于返回或設(shè)置Office 助手的動(dòng)畫效果。如應(yīng)用于 Balloon對(duì)象,則“助手”僅在顯示氣球時(shí)才會(huì)出現(xiàn)動(dòng)作,可通過(guò)常量賦值,常用的常量及其含義如下表所示:
常量名稱
代表的動(dòng)作
msoAnimationAppear
助手出現(xiàn)
msoAnimationBeginSpeaking
助手開始說(shuō)話
msoAnimationCheckingSomething
助手檢查動(dòng)作
msoAnimationDisappear
助手消失
msoAnimationGoodbye
助手說(shuō)“再見”
msoAnimationGreeting
助手致歡迎的動(dòng)作
msoAnimationIdle
助手休息的動(dòng)作(為默認(rèn)動(dòng)畫效果類型)
msoAnimationPrinting
助手打印的動(dòng)作
msoAnimationSaving
助手保存的動(dòng)作
msoAnimationSearching
助手開始查找的動(dòng)作
msoAnimationThinking
助手考慮的動(dòng)作
(2)AssistWithAlerts屬性:用于設(shè)置助手氣球是否發(fā)送給應(yīng)用程序警告信息。
(3)AssistWithHelp屬性:用于設(shè)置當(dāng)用戶按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.acs;“大眼夾”為Clippit.acs;“戀戀”為OffCat.acs;“聰聰”為Rocky.acs;“七巧板”為Logo.acs;“小靈通”Dot.acs;“美麗家園”為MNature.acs;“F1”為F1.acs。
(8)NewBalloon屬性:用于新建助手氣球,并返回Balloon對(duì)象。
(9)On屬性:用于設(shè)置是否使用助手。
(10)Sounds屬性:用于設(shè)置助手是否發(fā)出與動(dòng)畫對(duì)應(yīng)的聲音。
(11)TipOfDay屬性:用于設(shè)置每次啟動(dòng)Office時(shí),助手是否顯示專用的提示。
2.Balloon對(duì)象
該對(duì)象代表氣球,助手可在該氣球中顯示標(biāo)題、文字和一些控件,通過(guò)NewBalloon屬性可返回Balloon對(duì)象,且任意時(shí)刻僅有一個(gè)氣球可視。
(1)BalloonType屬性:用于設(shè)置助手所用的氣球類型,可通過(guò)常量賦值。創(chuàng)建Balloon對(duì)象時(shí),初始值為msoBalloonTypeButtons常量。
(2)Button屬性:用于設(shè)置助手氣球底部按鈕類型。創(chuàng)建Balloon對(duì)象時(shí),初始值為msoButtonSetOK。
(3)Icon屬性:用于設(shè)置助手氣球左上角的圖標(biāo)類型,可通過(guò)常量賦值。
(4)Checkboxes屬性:返回BalloonCheckboxes集合,即氣球中的所有復(fù)選框。
(5)Heading屬性:用于設(shè)置助手氣球中的標(biāo)題。氣球標(biāo)題和文本均支持包含下劃線和系統(tǒng)調(diào)色板16色的文字。
如需顯示包含下劃線的文字,可通過(guò)“{ul}”、“{ul 1}”語(yǔ)法來(lái)開始下劃線和“{ul 0}” 語(yǔ)法來(lái)清除下劃線;如需改變文字顏色,可通過(guò)“{cf number}”語(yǔ)法,其中number常數(shù)為系統(tǒng)調(diào)色板支持的16種顏色。
(6)Labels屬性:返回BalloonLabels 集合,即氣球中的所有標(biāo)簽。
(7)Mode屬性:用于設(shè)置氣球的模態(tài),即是否在顯示氣球的同時(shí)允許用戶在程序中繼續(xù)工作。
(8)Text屬性:用于設(shè)置助手在氣球標(biāo)簽、復(fù)選框或直接顯示部分的文字。
(9)Close方法:用于關(guān)閉活動(dòng)的非模態(tài)氣球,僅在回調(diào)過(guò)程中才可使用。
(10)Show方法:用于顯示指定的氣球?qū)ο蟆?/span>
3.BalloonCheckBox對(duì)象
該對(duì)象代表氣球中的復(fù)選框控件。
Checked屬性:返回是否已選擇氣球中的指定復(fù)選框。
(三)內(nèi)置對(duì)話框?qū)ο?/span>
Office使用了大量的內(nèi)置對(duì)話框,在Word和Excel中提供了開發(fā)接口,使開發(fā)者可充分利用內(nèi)置對(duì)話框?qū)崿F(xiàn)很多操作,尤其在Word中可使用多種方法顯示內(nèi)置對(duì)話框,實(shí)現(xiàn)不同的功能需求,這里,我們以Word的內(nèi)置對(duì)話框?yàn)槔M(jìn)行講解。
1.Dialogs集合對(duì)象
該集合對(duì)象代表Word或Excel中的Dialog對(duì)象集合,其中每個(gè)Dialog對(duì)象均代表一個(gè)內(nèi)置對(duì)話框,無(wú)法在Dialogs集合中創(chuàng)建新的內(nèi)置對(duì)話框,也無(wú)法添加對(duì)話框。
2.Dialog對(duì)象
該對(duì)象代表內(nèi)置對(duì)話框。
(1)CommandName屬性:用于返回顯示指定內(nèi)置對(duì)話框?qū)?yīng)的過(guò)程名。
(2)DefaultTab屬性:用于設(shè)置顯示指定對(duì)話框時(shí),其被激活的選項(xiàng)卡。
(3)Display方法:用于顯示指定的內(nèi)置對(duì)話框,并直至用戶關(guān)閉該對(duì)話框或超時(shí),使用顯示內(nèi)置對(duì)話框時(shí),不會(huì)執(zhí)行任何操作(即僅用于顯示),但可返回用戶關(guān)閉對(duì)話框時(shí)所單擊的按鈕代號(hào)。
其中,返回-2,代表“關(guān)閉”按鈕;返回-1,代表“確定”按鈕;返回0,代表“取消”按鈕;返回大于 0的值,則1代表第一個(gè)按鈕,2代表第二個(gè)按鈕,以此類推。
(4)Execute方法:用于應(yīng)用內(nèi)置對(duì)話框的當(dāng)前設(shè)置。
(5)Show方法:用于顯示并執(zhí)行內(nèi)置對(duì)話框,即如同用戶通過(guò)菜單或工具欄打開對(duì)話框,和Display方法相同,均返回用戶關(guān)閉對(duì)話框時(shí)所單擊的按鈕代號(hào)。
(6)Update方法:用于更新內(nèi)置對(duì)話框的參數(shù)值。
|