Excel隐藏/显示功能区上除自定义选项卡外的所有选项卡

Bre*_*ett 10 excel vba ribbon

如何使用VBA(而不是XML)隐藏和显示所有标准Excel功能区选项卡.我不想隐藏整个功能区(如此处所要求的:VBA最小化Excel中的功能区)只是选项卡.我知道如何使用XML使用startFromScratch,所以请不要建议使用XML或其他XML解决方案.

到目前为止,我已经进行了大量的Google搜索并查看了:

我所说的是我已经做了大量的搜索并尝试了许多事情而没有得到结果.

Sid*_*out 11

如何使用VBA(而不是XML)隐藏和显示所有标准Excel功能区选项卡

答案是" 你不能 ".

AFAIK,你不能用VBA做到这一点.不幸的是,VBA不公开标签.您拥有的唯一选项如下图所示

在此输入图像描述

所以你可以使用命令栏,commandbarButton,commandbarComboBox等...

您可以这么说,Set cbar = Application.CommandBars("Ribbon")但在此之后,您将面临的问题是如何获取选项卡的句柄.

使用VBA使用功能区可以执行的操作:

  • 确定特定控件是否为Enabled/Visible/Pressed(Toggleboxes/CheckBoxes)
  • 获取控件的标签,屏幕提示或超级显示与控件关联的图像.
  • 执行特定控件.

使用VBA使用功能区无法做到的事情:

  • 确定当前选择的选项卡.
  • 激活特定选项卡.
  • 隐藏特定选项卡
  • 添加新标签.
  • 将新组添加到选项卡.
  • 添加一个新控件.
  • 删除/禁用/隐藏控件.

但是,您可以使用XML来实现您的目标.例如

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
    <ribbon>
        <tabs>
            <tab idMso="TabReview" visible="false" />
        </tabs>
    </ribbon>
</customUI>
Run Code Online (Sandbox Code Playgroud)

但我想你不想通过XML Route.


use*_*568 7

您确实可以使用VBA隐藏/显示功能区。这是一个例子:

<ribbon startFromScratch="false">
  <tabs>
  <!-- EXCEL BUILT-IN TABS -->
    <tab idMso="TabDeveloper" getVisible="GetVisible">
	  <group idMso="GroupCode" visible="true"/>
	  <group idMso="GroupAddins" visible="true"/>
	  <group idMso="GroupControls" visible="true"/>
	  <group idMso="GroupXml" visible="true"/>
	  <group idMso="GroupModify" visible="true"/>
	</tab>
  </tabs>
</ribbon>
Run Code Online (Sandbox Code Playgroud)

  1. 设置您的XML文件。

  2. 设置您的VBA脚本。 Sub GetVisible(control As IRibbonControl, ByRef MakeVisible) Select Case control.ID Case "TabDeveloper": MakeVisible = True Case "TabHome": MakeVisible = True Case "TabInsert": MakeVisible = True Case "TabPageLayoutExcel": MakeVisible = True Case "TabFormulas": MakeVisible = True Case "TabData": MakeVisible = True Case "TabReview": MakeVisible = True Case "TabView": MakeVisible = True Case "TabAddIns": MakeVisible = True Case "TabBackgroundRemoval": MakeVisible = True End Sub

  3. 下载此文件以获取MS Office的控件ID列表。 http://www.microsoft.com/zh-CN/download/details.aspx?displaylang=en&id=6627

提示:在编辑XML功能区文件之前,请确保关闭包含正在编辑的功能区的Excel工作簿。我发现它有时会删除我的VBA代码(我不知道为什么,只是这样做)。