ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 6215|回复: 10

[分享] 学习一下对命令栏的操作

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-7-31 20:45 | 显示全部楼层 |阅读模式
本帖已被收录到知识树中,索引项:UI界面定制
先声明一下,此贴仅仅是将本人近两天学习操作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 编辑 ]

TA的精华主题

TA的得分主题

发表于 2009-7-31 21:02 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-7-31 21:04 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-7-31 21:05 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-8-26 21:29 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢楼主!{:soso__16984349925490629196_1:}

TA的精华主题

TA的得分主题

发表于 2013-6-6 22:51 | 显示全部楼层
{:soso_e100:}这几天都在找,

TA的精华主题

TA的得分主题

发表于 2013-6-7 08:52 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2013-12-4 17:20 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2018-2-3 17:19 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
谢谢楼组分享,

TA的精华主题

TA的得分主题

发表于 2018-12-9 11:26 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-22 11:52 , Processed in 0.036917 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表