【问题标题】:Excel Hide/Show all tabs on Ribbon except custom tabExcel隐藏/显示功能区上的所有选项卡,自定义选项卡除外
【发布时间】:2013-11-26 20:25:51
【问题描述】:

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

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

我的意思是我已经进行了广泛的搜索并尝试了很多东西但没有得到结果。

【问题讨论】:

  • 我真希望是这样。不幸的是,作为谷歌搜索的一部分,我已经访问过该页面。感谢您尝试@PortlandRunner。
  • 您必须使用 XML 来自定义功能区。您可以使默认值不可见,只需要知道内置选项卡的名称即可。例如隐藏 首页 标签:<tabs> <tab idMso="TabHome" visible="false" /> </tabs>
  • @PatricK,你是说我的自定义功能区选项卡的 xml 可以隐藏默认功能区选项卡?

标签: excel vba ribbon


【解决方案1】:

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

答案是“你不能”。

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

因此您可以使用命令栏、命令栏按钮、命令栏组合框等...

你可以说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>

但我猜你不想通过 XML 路由。

【讨论】:

    【解决方案2】:

    您确实可以使用 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>
    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/en-us/download/details.aspx?displaylang=en&id=6627

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

    【讨论】:

      【解决方案3】:

      激活特定标签

      在 Microsoft Office 2010 中,您可以使用 IRibbonUI 对象的ActivateTab 方法

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

      ActivateTabQ 还需要一个额外的 字符串类型参数,指定加载项的命名空间

      在 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"
      

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

        • 我认为你在键盘快捷键上弄错了。
        【解决方案5】:

        您可以像这样在 XML 上使用:

        查看此链接:

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

        【讨论】:

        • 感谢您的回答,但我明确表示“我知道如何使用 XML 来使用 startFromScratch,所以请不要这样建议”。以后请仔细阅读问题。
        【解决方案6】:

        试试这个我测试过的 Excel 的 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>
        

        结果:

        【讨论】:

          猜你喜欢
          • 2013-08-03
          • 2018-12-01
          • 1970-01-01
          • 2020-08-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多