如何用vba返回excel中所有菜单命令栏CommandBar的名称?

命令栏对象为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")

 

       

发表评论