如何使用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使用功能区可以执行的操作:
使用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.
您确实可以使用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)
设置您的XML文件。
设置您的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
提示:在编辑XML功能区文件之前,请确保关闭包含正在编辑的功能区的Excel工作簿。我发现它有时会删除我的VBA代码(我不知道为什么,只是这样做)。