工具栏及其控件对象
在Office中通过VBA开发工具栏和菜单,需使用Office提供的CommandBar、commandBarButton、CommandBarComboBox等对象,这些对象即代表工具栏、工具栏按钮和工具栏下拉框,通过这些对象可编制出各类复杂的工具栏或菜单。
1.CommandBars集合
该集合代表Office所有的工具栏,可用名称或索引号指定菜单栏或工具栏,但仅可用名称指定一个菜单、快捷菜单或子菜单。如两个或两个以上自定义菜单或子菜单名称相同,则返回第一个具有该名称的对象。
其Add方法用于新建一个工具栏,并返回 CommandBar对象。
语法:expression.Add(Name, Position, MenuBar, Temporary)
参数说明:
Name为可选的Variant 类型,代表新工具栏的名称。如果省略,则使用默认的名称;
Position为可选的Variant 类型,代表新工具栏的位置。该参数值可通过VBA常量进行设置,如msoBarLeft、msoBarTop、msoBarRight、msoBarBottom常量(设置新工具栏位于软件工具栏中位置);msoBarFloating常量(代表新工具栏可移动);msoBarPopup常量(代表新工具栏为快捷菜单)等;
MenuBar为可选的Variant 类型,用于设置是否用新工具栏替换活动工具栏;
Temporary为可选的Variant 类型,用于设置新工具栏是否暂时有效。
2.CommandBar对象
该对象代表应用程序中的工具栏,新建工具栏的控件均以该对象为载体。
(1)Controls属性:返回CommandBarControls对象,代表指定工具栏中的所有控件。
(2)NameLocal属性:返回由应用程序版本语言所设置的工具栏名称,如对软件的内置工具栏设置会出现错误。
(3)Position属性:返回或设置工具栏的位置,值可通过VBA常量进行设置,如msoBarLeft、msoBarTop、msoBarRight、msoBarBottom、msoBarFloating、msoBarPopup或msoBarMenu等。
(4)Type属性:返回或设置工具栏的类型,值可通过VBA常量进行设置,如msoBarTypeNormal(工具栏为普通类型)、msoBarTypeMenuBar(工具栏为菜单类型)、msoBarTypePopup(工具栏为弹出菜单类型)等。
(5)Reset方法:将内置工具栏重置为默认设置,在恢复软件原有工具栏或菜单时非常有用。重置内置工具栏将删除其中的自定义控件并恢复其内置控件。
3.CommandBarControls集合
该集合代表工具栏中的所有工具栏控件。
其Add方法用于在CommandBarControls集合中增加一个工具栏控件。
4.CommandBarControl对象
该对象代表工具栏控件,对自定义工具栏控件,可使用 CommandBarButton、CommandBarComboBox和CommandBarPopup对象进行定义,而对软件内置的控件进行操作,而该控件又无法使用上述三个对象表示,则可使用CommandBarControl对象。
(1)BeginGroup属性:用于设置工具栏控件是否分组显示。
(2)Caption属性:用于设置工具栏控件的标题文字,并可作为默认的控件屏幕提示。
(3)Id属性:用于设置CommandBarButton、CommandBarComboBox和CommandBarControl对象的功能,这些控件可直接设置为内置工具栏控件的ID,这样该控件即具备了软件内置的相应功能,自定义控件的ID属性均需设置为1。
(4)Copy方法:将工具栏控件复制到已有的工具栏中。
语法:expression.Copy(Bar, Before)
参数说明:
Bar为可选的Variant 类型,代表目标工具栏,如果省略,则控件将复制到自身所在的工具栏;
Before为可选的Variant 类型,代表新控件在指定工具栏的位置,即新控件将添加至该位置的控件前,如果省略,则控件将复制到工具栏的末尾。
(5)Type属性:返回工具栏控件的类型,可通过VBA常量进行引用,常用的工具栏控件类型如下表所示:
常量名称 含义
msoControlButton 控制按钮
msoControlButtonDropdown 带下拉列表的按钮
msoControlButtonPopup 带弹出菜单的按钮
msoControlComboBox 下拉组合控制框
msoControlDropdown 下拉列表控制框
msoControlEdit 文本框
msoControlExpandingGrid 可扩展的表格
msoControlGraphicCombo 图像下拉组合框
msoControlGraphicDropdown 图像下拉列表框
msoControlGrid 表格
msoControlPopup 弹出菜单
5.CommandBarButton对象
该对象代表工具栏的按钮控件。
(1)OnAction属性:返回或设置Visual Basic代码过程名(该代码过程不可使用参数),该过程将在单击按钮后运行。
(2)Style属性:返回或设置工具栏按钮的显示方式。值可通过VBA常量进行设置,常用的工具栏按钮控件类型如下表所示:
常量名称 含义
msoButtonIcon 包含图标的按钮
msoButtonCaption 包含标题的按钮
ButtonIconandCaption 包含图标和标题的按钮
msoButtonIconAndCaptionBelow 包含图标和标题,且标题位于底部的按钮
msoButtonIconAndWrapCaption 包含图标和标题,且标题自动换行的按钮
msoButtonWrapCaption 包含标题,且标题自动换行的按钮
(3)TooltipText属性:返回或设置工具栏按钮控件的屏幕提示。
(4)FaceId属性:返回或设置工具栏按钮的图标编号,设置工具栏按钮的外观而非其功能,自定义图标的工具栏按钮,其 FaceId属性值为 0。
(5)CopyFace方法:将工具栏按钮控件的图标复制到剪贴板。
(6)PasteFace方法:将剪贴板的图标内容粘贴至工具栏按钮控件。
(7)Execute方法:运行工具栏控件对应的过程或内置命令。
6.CommandBarComboBox对象
该对象代表工具栏中的组合框控件。
(1)DropDownLines属性:返回或设置组合框控件的行数,如将其设置为 0,则控件行数将取决于列表的条目数。
(2)List属性:返回或设置组合框控件中某列表项的值,对内置组合框控件只读。
(3)OnAction属性:返回或设置Visual Basic代码过程名(该代码过程不可使用参数),该过程在单击或更改组合框控件值时运行。
(4)Type属性:返回或设置组合框控件的显示方式。
(5)AddItem方法:用于在组合框控件中添加一个列表项,且该组合框控件必须为自定义的控件。
(6)RemoveItem方法:用于从组合框控件中删除一个列表项。
{$MY_AD_Squar_article_left} |