首页 > 解决方案 > 从文件中删除用户功能区

问题描述

我有带有用户功能区的 .xlsb 文件(我是在“Microsoft Office 的自定义 UI 编辑器”中制作的)。 在此处输入图像描述

我想从文件中自动删除(或隐藏)这个功能区(使用 VBA)。可能吗?

标签: excelvba

解决方案


对于此演示,您需要CustomUI 编辑器Excel显然

创建一个新工作簿并将其另存为AlexExample.xlsm

[A]打开VBE,插入一个模块。将此代码粘贴到模块中

Option Explicit

Dim Ribn As IRibbonUI
Public RibnTag As String

Sub RibbonOnLoad(ribbon As IRibbonUI)   
    Set Ribn = ribbon
End Sub

Sub GetVisible(control As IRibbonControl, ByRef visible)
    Select Case RibnTag
    Case "ShowTab": visible = True
    Case "HideTab": visible = False
    End Select
End Sub

Sub ShowMyRibbonTab()
    RibnTag = "ShowTab"
    If Not Ribn Is Nothing Then
        Ribn.Invalidate
    Else
        MsgBox "Couldn't get the ribbon object. Please close and restart the workbook"
    End If
End Sub

Sub HideMyRibbonTab()
    RibnTag = "HideTab"
    If Not Ribn Is Nothing Then
        Ribn.Invalidate
    Else
        MsgBox "Couldn't get the ribbon object. Please close and restart the workbook"
    End If
End Sub

[B]打开 ThisWorkbook 代码区并粘贴此代码

Option Explicit

Private Sub Workbook_Open()
    RibnTag = "ShowTab"
End Sub

[C]转到工作表并创建 2 个按钮(表单控件)。SHOW如下HIDE图所示。右键单击按钮并将宏分配ShowMyRibbonTabSHOWHIDEHideMyRibbonTab

在此处输入图像描述

[D]接下来打开 CustomUI Editor 并从那里打开 Excel 文件。在此处插入customUI.xml并粘贴以下代码。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customUI onLoad="RibbonOnLoad" 
xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon>
    <tabs>
      <tab id="MyCustomTab" label="AlexsTab" getVisible="GetVisible" tag="AlexsTab" >
    </tab>
</tabs>
</ribbon>
</customUI>

保存并关闭文件,您就完成了。

示例文件https ://www.dropbox.com/s/izzbwpcmqtyoibd/AlexExample.xlsm?dl=0

在此处输入图像描述


推荐阅读