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

时间:2013-11-14 00:32:07

标签: excel vba ribbon

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

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

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

6 个答案:

答案 0 :(得分:11)

  

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

答案是“你不能”。

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

enter image description here

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

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

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

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

使用VBA使用功能区无法做什么:

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

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

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
    <ribbon>
        <tabs>
            <tab idMso="TabReview" visible="false" />
        </tabs>
    </ribbon>
</customUI>

但我想你不想通过XML Route。

答案 1 :(得分:5)

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

NullReferenceException

  1. 设置XML文件。

                            

  2. 设置您的VBA脚本。 contentView

  3. 下载此文件以获取MS Office的控制ID列表。 http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=6627
  4. 提示:在编辑XML功能区文件之前,请务必关闭包含您正在编辑的功能区的Excel工作簿。我发现它有时会删除我的VBA代码(我不知道为什么,它就是这样)。

答案 2 :(得分:4)

激活特定标签

  

在Microsoft Office 2010中,您可以使用以下命令激活自定义选项卡   IRibbonUI对象的ActivateTab方法

     

您使用ActivateTabMso   内置选项卡的方法和ActivateTabQ之间共享的选项卡   多个加载项。

     

ActivateTabQ还需要额外的   String-type参数,指定加载项的命名空间

在XML中指定

customUI onLoad="RibbonOnLoad" xmlns=etc

在VBA中

Public gRibbonUI As IRibbonUI 

Sub RibbonOnLoad(ribbon As IRibbonUI)

   Set gRibbonUI = ribbon

End Sub

然后在代码中

gRibbonUI.ActivateTab "MyTabID"

gRibbonUI.ActivateTabMso "TabHome"

答案 3 :(得分:3)

首先,打开要隐藏功能区选项卡的Excel工作表,然后按 Alt + F11 。插入新代码模块并添加以下代码:

Private Sub hide()
    Application.ExecuteExcel4Macro "Show.ToolBar(""Ribbon"",False)
End sub

答案 4 :(得分:1)

您可以在XML上使用这些:

  

&LT; ribbon startFromScratch =&#34; true&#34; &GT;

检查此链接:

http://www.rondebruin.nl/win/s2/win012.htm

答案 5 :(得分:0)

尝试使用我测试的Excel for XML:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="false">
<tabs>
    <tab idMso="TabHome" visible="false" />
    <tab idMso="TabInsert" visible="false" />
    <tab idMso="TabFormulas" visible="false" />
    <tab idMso="TabData" visible="false" />
    <tab idMso="TabReview" visible="false" />
    <tab idMso="TabView" visible="false" />
    <tab idMso="TabDeveloper" visible="false" />
</tabs>
</ribbon>
</customUI>

XML Code

结果:
ExcelApp