|
先声明一下,此贴仅仅是将本人近两天学习操作Excel的命令栏做一个小结,并非在版主面前班门弄斧。
作为初学者,文中难免有错误之处,烦请版主老师指正。
如果大家利用好了自定义菜单与工具栏,就可以很方便地让别人使用你编辑好的功能。而利用单元格右键
的菜单,能让调用功能更为方便,其实它们同属于命令栏。
命令栏在EXCEL帮助中的解释:工具栏、菜单栏和快捷(用鼠标右键单击)菜单合并为一种功能,这就是
用户界面中的“工具栏”和 VBA 中的“命令栏”。
命令栏为下列三种类型之一:菜单栏、工具栏或弹出菜单。
命令栏对应的是CommandBars对象,其中包含的控件集合为CommandBarControls,而 CommandBarControl
对象中又分有三种——ComandBarButton(按钮控件)、CommandBarComboBox(组合框控件)以及
CommandBarPopup(弹出式控件)。
CommandBars 对象的方法常见的是 Add 方法,用于添加;其次是 FindControl 方法,它返回一个符合指
定条件的 CommandBarControl 对象。
Add 方法
(1)Add 方法应用于 CommandBars 对象的情形。
作用:新建一个命令栏并添加到命令栏集合。返回 CommandBar 对象。(例如新增一个自定义工具栏)
expression.Add(Name, Position, MenuBar, Temporary)
expression 必需。该表达式返回一个 CommandBars 对象。
Name Variant 类型,可选。新命令栏的名称。如果忽略该参数,则为命令栏指定默认名称(例如Custom 1)。
Position Variant 类型,可选。新命令栏的位置或类型。取值为MsoBarPosition 常量之一(见文末)。
MenuBar Variant 类型,可选。设置为 True 将以新命令栏替换活动菜单栏。默认值为 False。
Temporary Variant 类型,可选。设置为 True 将使新命令栏为临时命令栏。临时命令栏在关闭容器
应用程序时删除。默认值为 False。
(2)Add 方法应用于 CommandBarControls 对象的情形。
作用:新建一个 CommandBarControl 对象并添加到指定命令栏上的控件集合。(例如添加一个按钮到工具栏中)
expression.Add(Type, Id, Parameter, Before, Temporary)
Type Variant 类型,可选。添加到指定命令栏的控件类型。可以为下列 MsoControlType 常量之一:
msoControlButton、msoControlEdit、msoControlDropdown、msoControlComboBox 或 msoControlPopup。
Id Variant 类型,可选。指定内置控件的整数。如果该参数为 1,或者忽略该参数,将在命令栏中添加一个空的指定类型的自定义控件。
Parameter Variant 类型,可选。对于内置控件,该参数用于容器应用程序运行命令。对于自定义控件,
可以使用该参数向 Visual Basic 过程传递信息,或用其存储控件信息(类似于第二个 Tag 属性值)。
Before Variant 类型,可选。表示新控件在命令栏上位置的数字。新控件将插入到该位置控件之前。如果忽略该参数,控件将添加到指定命令栏的末端。
Temporary Variant 类型,可选。设置为 True 将使新命令栏为临时命令栏。临时命令栏在关闭容器应用程序时删除。默认值为 False。
FindControl 方法
expression.FindControl(Type, Id, Tag, Visible, Recursive)
expression 必需。该表达式返回一个 CommandBars 对象。
Type MsoControlType 类型,可选。控件的类型
Id Variant 类型,可选。要查找的控件的标识符。
Tag Variant 类型,可选。要查找的控件的标记值。
Visible Variant 类型,可选。如果该值为 True,那么只查找屏幕上显示的命令栏控件。默认值为
False。屏幕上可见的命令栏,其中包括执行 FindControl 方法时所打开的所有可见的工具栏和菜单。
Recursive Boolean 类型,可选。如果该值为 True,那么将在命令栏及其全部弹出式子工具栏中查
找。此参数仅应用于 CommandBar 对象。默认值为 False。
说明:如果 CommandBars 集合中有两个或者更多的控件符合搜索条件,那么 FindControl 返回
找到的第一个控件。如果没有控件符合搜索条件,那么 FindControl 返回 Nothing。
========================
操作中涉及到的枚举常量
MsoBarPosition (添加工具栏的类型或位置 即Add方法中Position参数) 该值可设置为以下常量之一:msoBarLeft、msoBarTop、
msoBarRight 和 msoBarBottom ;msoBarFloating;msoBarPopup;msoBarMenuBar(仅适用于 Macintosh 机)
MsoControlType (命令栏中控件的类型)分很多类,其中常用的有: msoControlButton、
msoControlButtonPopup、msoControlButtonDropdown、msoControlComboBox、msoControlEdit等。
MsoBarType (返回CommandBar的Type属性)该值可设置为以下常量之一:msoBarTypeMenuBar 、
msoBarTypeNormal、msoBarTypePopup。
MsoButtonStyle (用于Add方法的Type属性) 指定按钮图符是显示其图标还是显示其标题。该值可设置为
以下常量之一:msoButtonAutomatic、msoButtonIcon、msoButtonCaption、msoButtonIconandCaption、
msoButtonIconAndCaptionBelow、msoButtonIconAndWrapCaption、msoButtonIconAndWrapCaptionBelow
或 msoButtonWrapCaption。
MsoButtonState (返回或设置命令栏按钮控件的State 属性。内置命令栏按钮的 State 属性为只读。)
该值可设置为以下常量之一:msoButtonDown、msoButtonMixed 或 msoButtonUp。
===========
附演示文档,其中有项列出全部内置工具栏的功能,对研究工具栏很有帮助。
另外,如果碰到自己的右键菜单被替换了、隐藏系统菜单等问题也可以看看。
内置菜单.rar
(26.21 KB, 下载次数: 290)
[ 本帖最后由 jmey 于 2009-7-31 21:12 编辑 ] |
|