命令栏对象为CommandBar。
在office中命令栏包含有菜单栏、工具栏。
由于excel 2007版本开始,微软用ribbon代替了原来常用的菜单栏、工具栏。
所以很多菜单栏、工具栏都已经不存在了,但是有些还是有使用价值的,比如单元格右键菜单栏。
所有的菜单栏、工具栏集合在一起,构成了CommandBars集合对象。
如果要在vba中操作具体的命令栏,可以使用CommandBars ( index ),其中index是命令栏的名称或者索引号。
如果要知道所有命令栏的名称可以使用如下的代码:
Sub QQ1722187970()
Dim oCB As CommandBar
Dim oWK As Worksheet
Set oWK = ActiveSheet
oWK.Cells.Clear
Dim iCol As Integer
arr = Array("命令栏名称", "命令栏中文名称", "是否内置命令栏", "是否可见")
iCol = UBound(arr) + 1
oWK.Range("a1").Resize(1, iCol) = arr
i = 2
For Each oCB In Excel.Application.CommandBars
With oWK
.Cells(i, "a") = oCB.Name
.Cells(i, "b") = oCB.NameLocal
.Cells(i, "c") = oCB.BuiltIn
.Cells(i, "d") = oCB.Visible
i = i + 1
End With
Next
oWK.Columns.AutoFit
End Sub
运行后的结果如下:
| 命令栏名称 | 命令栏中文名称 | 是否内置命令栏 | 是否可见 |
| Worksheet Menu Bar | 工作表菜单栏 | TRUE | TRUE |
| Chart Menu Bar | 图表菜单栏 | TRUE | FALSE |
| Circular Reference | 循环引用 | TRUE | FALSE |
| Standard | 常用 | TRUE | TRUE |
| Formatting | 格式 | TRUE | TRUE |
| PivotTable | 数据透视表 | TRUE | FALSE |
| Chart | 图表 | TRUE | FALSE |
| Reviewing | 审阅 | TRUE | FALSE |
| Forms | 窗体 | TRUE | FALSE |
| Stop Recording | 停止录制 | TRUE | FALSE |
| External Data | 外部数据 | TRUE | FALSE |
| Formula Auditing | 公式审核 | TRUE | FALSE |
| Full Screen | 全屏显示 | TRUE | FALSE |
| PivotChart Menu | 数据透视图菜单 | TRUE | FALSE |
| Visual Basic | Visual Basic | TRUE | FALSE |
| Web | Web | TRUE | FALSE |
| Control Toolbox | 控件工具箱 | TRUE | FALSE |
| Exit Design Mode | 退出设计模式 | TRUE | FALSE |
| Refresh | 刷新 | TRUE | FALSE |
| Watch Window | 监视窗口 | TRUE | FALSE |
| PivotTable Field List | 数据透视表字段列表 | TRUE | FALSE |
| Borders | 边框 | TRUE | FALSE |
| Protection | 保护 | TRUE | FALSE |
| Text To Speech | 文本到语音 | TRUE | FALSE |
| List | 列表 | TRUE | FALSE |
| Compare Side by Side | 并排比较 | TRUE | FALSE |
| Workbook tabs | 工作簿标签 | TRUE | FALSE |
| Cell | 单元格 | TRUE | FALSE |
| Column | 列 | TRUE | FALSE |
| Row | 行 | TRUE | FALSE |
| Cell | 单元格 | TRUE | FALSE |
| Column | 柱形图 | TRUE | FALSE |
| Row | 行 | TRUE | FALSE |
| Ply | Ply | TRUE | FALSE |
| XLM Cell | XLM 单元格 | TRUE | FALSE |
| Document | 文档 | TRUE | FALSE |
| Desktop | 桌面 | TRUE | FALSE |
| Nondefault Drag and Drop | 非默认拖放 | TRUE | FALSE |
| AutoFill | 自动填充 | TRUE | FALSE |
| Button | 按钮 | TRUE | FALSE |
| Dialog | 对话框 | TRUE | FALSE |
| Series | 序列 | TRUE | FALSE |
| Plot Area | 绘图区 | TRUE | FALSE |
| Floor and Walls | 基底和墙纸 | TRUE | FALSE |
| Trendline | 趋势线 | TRUE | FALSE |
| Chart | 图表 | TRUE | FALSE |
| Format Data Series | 设置数据系列格式 | TRUE | FALSE |
| Format Axis | 设置坐标轴格式 | TRUE | FALSE |
| Format Legend Entry | 设置图例项格式 | TRUE | FALSE |
| Formula Bar | 编辑栏 | TRUE | FALSE |
| PivotTable Context Menu | 数据透视表上下文菜单 | TRUE | FALSE |
| Query | 查询 | TRUE | FALSE |
| Query Layout | 查询布局 | TRUE | FALSE |
| AutoCalculate | 自动计算 | TRUE | FALSE |
| Object/Plot | 对象/图形区 | TRUE | FALSE |
| Title Bar (Charting) | 标题栏(图表) | TRUE | FALSE |
| Layout | 框架 | TRUE | FALSE |
| Pivot Chart Popup | 数据透视图快捷菜单 | TRUE | FALSE |
| Phonetic Information | 拼音信息 | TRUE | FALSE |
| Auto Sum | 自动合计 | TRUE | FALSE |
| Paste Special Dropdown | 选择性粘贴下拉框 | TRUE | FALSE |
| Find Format | 查找格式 | TRUE | FALSE |
| Replace Format | 替换格式 | TRUE | FALSE |
| List Range Popup | 列表区域快捷菜单 | TRUE | FALSE |
| List Range Layout Popup | 列表区域布局快捷菜单 | TRUE | FALSE |
| XML Range Popup | XML 区域快捷菜单 | TRUE | FALSE |
| List Range Layout Popup | 列表区域布局快捷菜单 | TRUE | FALSE |
| Nil | Nil | TRUE | FALSE |
| Filter Names | 筛选器名称 | TRUE | FALSE |
| Excel Previewer | Excel 预览器 | TRUE | FALSE |
| &Legacy Keyboard Support | 旧式键盘支持(&L) | TRUE | FALSE |
| Row | 行 | TRUE | FALSE |
| Column | 列 | TRUE | FALSE |
| Drawing | 绘图 | TRUE | FALSE |
| WordArt | 艺术字 | TRUE | FALSE |
| Picture | 图片 | TRUE | FALSE |
| Shadow Settings | 阴影设置 | TRUE | FALSE |
| 3-D Settings | 三维设置 | TRUE | FALSE |
| Drawing Canvas | 绘图画布 | TRUE | FALSE |
| Organization Chart | 组织结构图 | TRUE | FALSE |
| Diagram | 图示 | TRUE | FALSE |
| Ink Drawing and Writing | 墨迹绘图与书写 | TRUE | FALSE |
| Ink Annotations | 墨迹注释 | TRUE | FALSE |
| Borders | 边框 | TRUE | FALSE |
| Borders | 边框 | TRUE | FALSE |
| Draw Border | 绘制边框 | TRUE | FALSE |
| Chart Type | 图表类型 | TRUE | FALSE |
| Pattern | 图案 | TRUE | FALSE |
| Font Color | 字体颜色 | TRUE | FALSE |
| Fill Color | 填充颜色 | TRUE | FALSE |
| Line Color | 线条颜色 | TRUE | FALSE |
| Drawing and Writing Pens | 绘图与书写笔 | TRUE | FALSE |
| Annotation Pens | 批注笔 | TRUE | FALSE |
| Drawing and Writing Pens | 绘图和书写笔 | TRUE | FALSE |
| Annotation Pens | 注释笔 | TRUE | FALSE |
| Order | 叠放次序 | TRUE | FALSE |
| Nudge | 微移 | TRUE | FALSE |
| Align or Distribute | 对齐或分布 | TRUE | FALSE |
| Rotate or Flip | 旋转或翻转 | TRUE | FALSE |
| Lines | 直线 | TRUE | FALSE |
| Connectors | 连接线 | TRUE | FALSE |
| AutoShapes | 自选图形 | TRUE | FALSE |
| Callouts | 标注 | TRUE | FALSE |
| Flowchart | 流程图 | TRUE | FALSE |
| Block Arrows | 箭头总汇 | TRUE | FALSE |
| Stars & Banners | 星与旗帜 | TRUE | FALSE |
| Basic Shapes | 基本形状 | TRUE | FALSE |
| Insert Shape | 插入形状 | TRUE | FALSE |
| Shapes | 形状 | TRUE | FALSE |
| Inactive Chart | 非活动图表 | TRUE | FALSE |
| Excel Control | Excel 控件 | TRUE | FALSE |
| Curve | 曲线 | TRUE | FALSE |
| Curve Node | 曲线结点 | TRUE | FALSE |
| Curve Segment | 曲线段 | TRUE | FALSE |
| Pictures Context Menu | 图片上下文菜单 | TRUE | FALSE |
| OLE Object | OLE 对象 | TRUE | FALSE |
| ActiveX Control | ActiveX 控件 | TRUE | FALSE |
| WordArt Context Menu | 艺术字上下文菜单 | TRUE | FALSE |
| Rotate Mode | 旋转方式 | TRUE | FALSE |
| Connector | 连接线 | TRUE | FALSE |
| Script Anchor Popup | 脚本标记快捷菜单 | TRUE | FALSE |
| Canvas Popup | Canvas Popup | TRUE | FALSE |
| Organization Chart Popup | Organization Chart Popup | TRUE | FALSE |
| Diagram | 图表 | TRUE | FALSE |
| Select | 选择 | TRUE | FALSE |
| Layout | 版式 | TRUE | FALSE |
| Task Pane | 任务窗格 | TRUE | FALSE |
| TRUE | FALSE | ||
| Property Editor | 属性编辑器 | TRUE | FALSE |
| Office Clipboard | Office 剪贴板 | TRUE | FALSE |
| XML Source | XML 源 | TRUE | FALSE |
| Research | 信息检索 | TRUE | FALSE |
| XML Document | XML 文档 | TRUE | FALSE |
| Signatures | 签名 | TRUE | FALSE |
| Document Actions | 文档操作 | TRUE | FALSE |
| Clip Art | 剪贴画 | TRUE | FALSE |
| Selection | 选择 | TRUE | FALSE |
| Format Object | 设置对象格式 | TRUE | FALSE |
| Document Management | 文档管理 | TRUE | FALSE |
| Document Updates | 文档更新 | TRUE | FALSE |
| Mail Merge Panes | 邮件合并窗格 | TRUE | FALSE |
| Fax Service | 传真服务 | TRUE | FALSE |
| Meeting Workspace | 会议工作区 | TRUE | FALSE |
| Attachment Options | 附件选项 | TRUE | FALSE |
| Accessibility Checker | 辅助功能检查器 | TRUE | FALSE |
| Proofing | 校对 | TRUE | FALSE |
| Dictionaries | 词典 | TRUE | FALSE |
| Thesaurus | 同义词库 | TRUE | FALSE |
| History | 历史记录 | TRUE | FALSE |
| Share | 共享 | TRUE | FALSE |
| Insights | 见解 | TRUE | FALSE |
| Ribbon Adapter | Ribbon Adapter | TRUE | FALSE |
| Add Command | 添加命令 | TRUE | FALSE |
| Built-in Menus | 内置菜单 | TRUE | FALSE |
| Clipboard | 剪贴板 | TRUE | FALSE |
| Envelope | 信封 | TRUE | FALSE |
| TRUE | FALSE | ||
| Status Bar | 状态栏 | TRUE | TRUE |
| Ribbon | Ribbon | TRUE | TRUE |
其中几个常用的命令栏是”Worksheet Menu Bar”、“Standard”、“Cell”,它们分别对应的是菜单命令、工具栏命令和单元格右键菜单命令。
比如要操作单元格右键菜单栏,可以用以下代码获得该菜单栏的对象:
Dim oCB As CommandBar
Set oCB= Excel.Application.CommandBars("Cell")


发表评论