如何用vba显示或者关闭“加载项”选项卡?

在设置“自定义功能区”时,看到了一个“加载项”选项卡,但是勾选它之后,并没有在功能区中显示,如图所示:

由于“加载项”选项卡是专门为了兼容excel 2003版本的自定义菜单命令而设置的,单纯的勾选它并不会显示,只有添加了自定义菜单命令后才有可能会显示。

从图中可以看出,“加载项”选项下有“菜单命令”、“工具栏命令”、“自定义工具栏”三个组。

一、其中“加载项”选项下的“菜单命令”组对应的是名为“Worksheet Menu Bar”的菜单栏中添加的自定义菜单命令,如图所示:

Sub QQ1722187970()
    Dim oCB As CommandBar
    Dim oCBC As CommandBarControl
    Set oCB = Excel.Application.CommandBars("Worksheet Menu Bar")
    With oCB
        .Reset
        Set oCBC = .Controls.Add
        With oCBC
            .FaceId = 17
        End With
    End With
End Sub

当运行上述代码后,将自动在功能区中添加显示“加载项”选项卡,并且在“菜单命令”组中显示添加的自定义的菜单命令。

二、“加载项”选项下的“工具栏命令”组对应的是名为“Standard”的菜单栏中添加的自定义菜单命令,如图所示:

Sub QQ1722187970()
    Dim oCB As CommandBar
    Dim oCBC As CommandBarControl
    '添加加载项选项卡下的菜单命令组中的命令
    Set oCB = Excel.Application.CommandBars("Worksheet Menu Bar")
    With oCB
        .Reset
        Set oCBC = .Controls.Add
        With oCBC
            .FaceId = 17
        End With
    End With
    '添加加载项选项卡下的工具栏命令组中的命令
    Set oCB = Excel.Application.CommandBars("Standard")
    With oCB
        .Reset
        Set oCBC = .Controls.Add
        With oCBC
            .FaceId = 18
        End With
    End With
End Sub

当运行上述代码后,将自动在功能区中添加显示“加载项”选项卡,并且在“菜单命令”组和“工具栏命令组”中显示添加的自定义的菜单命令。

三、“加载项”选项下的“自定义工具栏”组需要通过CommandBars.Add方法添加,如图所示:

Sub QQ1722187970()
    Dim oCB As CommandBar
    Dim oCBC As CommandBarControl
    For Each oCB In Excel.Application.CommandBars
        If oCB.BuiltIn = False Then
            oCB.Delete
        End If
    Next
    '添加加载项选项卡下的菜单命令组中的命令
    Set oCB = Excel.Application.CommandBars("Worksheet Menu Bar")
    With oCB
        .Reset
        Set oCBC = .Controls.Add
        With oCBC
            .FaceId = 17
        End With
    End With
    '添加加载项选项卡下的工具栏命令组中的命令
    Set oCB = Excel.Application.CommandBars("Standard")
    With oCB
        .Reset
        Set oCBC = .Controls.Add
        With oCBC
            .FaceId = 18
        End With
    End With
    '添加加载项选项卡下的自定义工具栏组中的命令
    Set oCB = Excel.Application.CommandBars.Add
    With oCB
        '一定要设置为可见,否则无法显示
        .Visible = True
        Set oCBC = .Controls.Add
        With oCBC
            .FaceId = 19
        End With
    End With
End Sub

当运行上述代码后,将自动在功能区中添加显示“加载项”选项卡,并且在“菜单命令”组、“工具栏命令组”、“自定义工具栏”中显示添加的自定义的菜单命令。

如果想要清除添加的自定义菜单命令,只需要运行以下代码,“加载项”选项卡将自动消失,如图所示:

Sub QQ1722187970()
    Dim oCB As CommandBar
    Dim oCBC As CommandBarControl
    '删除自定义工具栏
    For Each oCB In Excel.Application.CommandBars
        If oCB.BuiltIn = False Then
            oCB.Delete
        End If
    Next
    Set oCB = Excel.Application.CommandBars("Worksheet Menu Bar")
    With oCB
        .Reset
    End With
    Set oCB = Excel.Application.CommandBars("Standard")
    With oCB
        .Reset
    End With
End Sub
       

发表评论