VBA---EXcel工具栏及控件对象、助手对象、内置对话框对象介绍
一)工具栏及其控件对象
在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方法:用于从组合框控件中删除一个列表项。
(二)助手对象
Office助手是一组卡通动画人物,这些助手可提供友好的信息提示,并可通过自定义对话框(又称“气球”)的文字格式和控件来实现简单的交互。
1.Assistant对象
该对象代表Office助手,可通过Application对象的Assistant属性返回Assistant对象。默认助手为“大眼夹”(即“Clippit”),用户可在右键单击助手后出现的快捷菜单中单击“选择助手”菜单项,在弹出的“Office助手”对话框中即可选择不同的助手。
(1)Animation属性:用于返回或设置Office 助手的动画效果。如应用于 Balloon对象,则“助手”仅在显示气球时才会出现动作,可通过常量赋值,常用的常量及其含义如下表所示:
常量名称
代表的动作
msoAnimationAppear
助手出现
msoAnimationBeginSpeaking
助手开始说话
msoAnimationCheckingSomething
助手检查动作
msoAnimationDisappear
助手消失
msoAnimationGoodbye
助手说“再见”
msoAnimationGreeting
助手致欢迎的动作
msoAnimationIdle
助手休息的动作(为默认动画效果类型)
msoAnimationPrinting
助手打印的动作
msoAnimationSaving
助手保存的动作
msoAnimationSearching
助手开始查找的动作
msoAnimationThinking
助手考虑的动作
(2)AssistWithAlerts属性:用于设置助手气球是否发送给应用程序警告信息。
(3)AssistWithHelp属性:用于设置当用户按F1键显示帮助时助手是否出现。
(4)AssistWithWizards属性:用于设置助手是否提供向导型的联机帮助。
(5)FeatureTips属性:用于设置助手是否更有效地提供有关应用程序功能信息。
(6)GuessHelp属性:用于设置助手是否显示帮助主题列表。
(7)FileName属性:用于设置助手所使用的文件名,助手文件的扩展名为“acs”,一般位于Office的安装目录下。其中“孙悟空”为mnkyking.acs;“大眼夹”为Clippit.acs;“恋恋”为OffCat.acs;“聪聪”为Rocky.acs;“七巧板”为Logo.acs;“小灵通”Dot.acs;“美丽家园”为MNature.acs;“F1”为F1.acs。
(8)NewBalloon属性:用于新建助手气球,并返回Balloon对象。
(9)On属性:用于设置是否使用助手。
(10)Sounds属性:用于设置助手是否发出与动画对应的声音。
(11)TipOfDay属性:用于设置每次启动Office时,助手是否显示专用的提示。
2.Balloon对象
该对象代表气球,助手可在该气球中显示标题、文字和一些控件,通过NewBalloon属性可返回Balloon对象,且任意时刻仅有一个气球可视。
(1)BalloonType属性:用于设置助手所用的气球类型,可通过常量赋值。创建Balloon对象时,初始值为msoBalloonTypeButtons常量。
(2)Button属性:用于设置助手气球底部按钮类型。创建Balloon对象时,初始值为msoButtonSetOK。
(3)Icon属性:用于设置助手气球左上角的图标类型,可通过常量赋值。
(4)Checkboxes属性:返回BalloonCheckboxes集合,即气球中的所有复选框。
(5)Heading属性:用于设置助手气球中的标题。气球标题和文本均支持包含下划线和系统调色板16色的文字。
如需显示包含下划线的文字,可通过“{ul}”、“{ul 1}”语法来开始下划线和“{ul 0}” 语法来清除下划线;如需改变文字颜色,可通过“{cf number}”语法,其中number常数为系统调色板支持的16种颜色。
(6)Labels属性:返回BalloonLabels 集合,即气球中的所有标签。
(7)Mode属性:用于设置气球的模态,即是否在显示气球的同时允许用户在程序中继续工作。
(8)Text属性:用于设置助手在气球标签、复选框或直接显示部分的文字。
(9)Close方法:用于关闭活动的非模态气球,仅在回调过程中才可使用。
(10)Show方法:用于显示指定的气球对象。
3.BalloonCheckBox对象
该对象代表气球中的复选框控件。
Checked属性:返回是否已选择气球中的指定复选框。
(三)内置对话框对象
Office使用了大量的内置对话框,在Word和Excel中提供了开发接口,使开发者可充分利用内置对话框实现很多操作,尤其在Word中可使用多种方法显示内置对话框,实现不同的功能需求,这里,我们以Word的内置对话框为例进行讲解。
1.Dialogs集合对象
该集合对象代表Word或Excel中的Dialog对象集合,其中每个Dialog对象均代表一个内置对话框,无法在Dialogs集合中创建新的内置对话框,也无法添加对话框。
2.Dialog对象
该对象代表内置对话框。
(1)CommandName属性:用于返回显示指定内置对话框对应的过程名。
(2)DefaultTab属性:用于设置显示指定对话框时,其被激活的选项卡。
(3)Display方法:用于显示指定的内置对话框,并直至用户关闭该对话框或超时,使用显示内置对话框时,不会执行任何操作(即仅用于显示),但可返回用户关闭对话框时所单击的按钮代号。
其中,返回-2,代表“关闭”按钮;返回-1,代表“确定”按钮;返回0,代表“取消”按钮;返回大于 0的值,则1代表第一个按钮,2代表第二个按钮,以此类推。
(4)Execute方法:用于应用内置对话框的当前设置。
(5)Show方法:用于显示并执行内置对话框,即如同用户通过菜单或工具栏打开对话框,和Display方法相同,均返回用户关闭对话框时所单击的按钮代号。
(6)Update方法:用于更新内置对话框的参数值。