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