Context Menu:单击鼠标右键而产生的环境菜单,字面意思也叫做这个也有另外一个名字叫做Shortcut Menu,快捷菜单。两者其实是一回事。
顾名思义,这两个名字都表明了其特征:context 上下文依赖,shortcut便捷,单击鼠标右键就有的,如在excel中选中任意一个单元格,右击鼠标弹出的就是Context Menu(Shortcut Menu)
对于VBA而言,控制Context Menu的对象是CommandBar对象。大概是因为有了Ribbon之后,CommandBar对象的地位变得比较特殊,虽然Excel用户界面元素有:
- 工具栏toolbar
- 菜单栏 menu bar
-
上下文菜单Context Menu
实际上,你最好只用CommandBar对象来自定义上下文菜单Context Menu,用CommandBar对象自定义工具栏toolbar和菜单栏 menu bar,Excel会拦截代码并忽略一些命令。
一句话, 在Excel2007以上版本,我们只用CommandBar对象来自定义上下文菜单Context Menu。
CommandBars 对象成员
代表容器应用程序中命令栏的 CommandBar 对象的集合。
方法
|
名称 |
说明 |
|
|
|
创建一个新的命令栏并将其添加到命令栏集合中。 |
|
|
|
提交呈现事务。返回 Nothing。 |
|
|
|
执行由 idMso 参数标识的控件。 |
|
|
|
获取一个符合指定条件的 CommandBarControl 对象。 |
|
|
|
获取符合指定条件的 CommandBarControls 集合。 |
|
|
|
如果启用了 idMso 参数标识的控件,则返回 True。 |
|
|
|
返回由 idMso 参数标识的控件图像(缩放到指定的宽度和高度尺寸)的 IPictureDisp 对象。 |
|
|
|
将 idMso 参数标识的控件的标签作为 String 类型的值返回。 |
|
|
|
返回一个值,该值指示是否已按下 idMso 参数标识的 toggleButton 控件。 |
|
|
|
将 idMso 参数标识的控件的屏幕提示作为 String 类型的值返回。 |
|
|
|
将 idMso 参数标识的控件的超级提示作为 String 类型的值返回。 |
|
|
|
如果 idMso 参数标识的控件可见,则返回 True。 |
|
|
|
释放所有命令栏的用户界面焦点。 |
属性
|
名称 |
说明 |
|
|
|
获取一个 CommandBarControl 对象,该对象的 OnAction 属性设置为当前正在运行的过程。只读。 |
|
|
|
获取一个 CommandBar 对象,该对象代表容器应用程序中的活动菜单栏。只读。 |
|
|
|
此属性可选中或取消选中指定 Microsoft Office 中菜单是完全显示还是按个性化方式显示的选项的复选框控件。可读写。 |
|
|
|
获取一个 Application 对象,代表 CommandBars 对象的容器应用程序(可以使用 Automation 对象的此属性返回该对象的容器应用程序)。只读。 |
|
|
|
获取宿主应用程序中的命令栏数量。只读。 |
|
|
|
获取一个 32 位整数,指示创建 CommandBars 对象时所使用的应用程序。只读。 |
|
|
|
如果启用了”应答向导”下拉菜单,则为 True。可读写。 |
|
|
|
如果禁用了工具栏的自定义功能,则为 True。可读写。 |
|
|
|
如果在”字体”框中以实际字体显示字体名称,则为 True。可读写。 |
|
|
|
如果每个命令栏控件的快捷键都显示在”工具提示”中,则为 True。可读写。 |
|
|
|
如果只要用户将指针放在命令栏控件上方就显示”屏幕提示”,则为 True。可读写。 |
|
|
|
获取 CommandBars 集合中的 CommandBar 对象。只读。 |
|
|
|
如果显示的工具栏按钮比常规尺寸要大,则为 True。可读写。 |
|
|
|
获取或设置一个代表命令栏的动画方式的 MsoMenuAnimation。可读写。 |
|
|
|
获取 CommandBars 对象的 Parent 对象。只读。 |
事件
|
名称 |
说明 |
|
|
|
该事件发生于命令栏改变时。 |
|
CommandBar 对象成员 |
代表容器应用程序中的一个命令栏。CommandBar 对象是 CommandBars 集合的成员。
方法
|
名称 |
说明 |
|
|
|
从集合中删除 CommandBar 对象。 |
|
|
|
获取一个符合指定条件的 CommandBarControl 对象。 |
|
|
|
将内置命令栏重置为其默认配置。 |
|
|
|
将指定的命令栏作为快捷菜单,在指定坐标或当前光标位置显示。 |
属性
|
名称 |
说明 |
|
|
|
获取一个 Boolean 类型的值,该值指定命令栏是否应包含自适应菜单。可读写。 |
|
|
|
获取一个 Application 对象,代表 CommandBar 对象的容器应用程序(可以使用 Automation 对象的此属性返回该对象的容器应用程序)。只读。 |
|
|
|
如果指定的命令栏是容器应用程序的内置命令栏,则获取 True。如果是自定义命令栏,则返回 False。只读。 |
|
|
|
获取或设置一个可确定命令栏保存位置的字符串。该字符串由应用程序定义和解释。可读写。 |
|
|
|
获取一个代表命令栏上的所有控件的 CommandBarControls 对象。只读。 |
|
|
|
获取一个 32 位整数,指示创建 CommandBar 对象时所使用的应用程序。只读。 |
|
|
|
获取或设置用于指定是否启用了指定 CommandBar 的 Boolean 值。可读写。 |
|
|
|
获取或设置 CommandBar 的高度。可读写。 |
|
|
|
获取一个 Long 类型的值,该值代表集合中 CommandBar 对象的索引号。只读。 |
|
|
|
设置或获取从对象左边缘算起 CommandBar 相对于屏幕的水平距离(以像素为单位)。可读写。 |
|
|
|
获取内置的 CommandBar 对象的名称。只读。 |
|
|
|
获取以容器应用程序的语言版本显示的内置命令栏名称,或者返回或设置自定义命令栏的名称。可读写。 |
|
|
|
获取 CommandBar 对象的 Parent 对象。只读。 |
|
|
|
获取或设置一个代表命令栏位置的 MsoBarPosition 常量。可读写。 |
|
|
|
获取或设置一个 MsoBarProtection 常量,代表防止用户对命令栏进行自定义的方式。可读写。 |
|
|
|
获取或设置一个命令栏相对于同一停靠区域中其他命令栏的停靠顺序。该属性值可以是大于零的整数,也可以是以下 MsoBarRow 常量之一:msoBarRowFirst 或 msoBarRowLast。可读写。 |
|
|
|
设置或获取指定的命令栏顶边到屏幕顶边的距离。对于固定命令栏,此属性返回或设置从命令栏到停靠区域顶部的距离。可读写。 |
|
|
|
获取命令栏的类型。只读。 |
|
|
|
获取或设置命令栏的 Visible 属性。如果命令栏可见,则为 True。可读写。 |
|
|
|
获取或设置指定命令栏的宽度(以像素为单位)。可读写。 |























































