VBA开发共用对象详解
VBA和其他面向对象的开发语言类似,同样有非常多的对象组成,且不同的Office成员即提供了大量的开发对象,如工具栏、Office助手、内置对话框和窗体等。
  (一)工具栏及其控件对象  在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方法:将剪贴板的图标内容粘贴至工具栏按钮控件。
position标签属性
  (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。