跳到主要内容

隐藏、取消隐藏、最小化功能区

隐藏和取消隐藏功能区

隐藏功能区

当隐藏功能区时,功能区选项卡和选项卡中的控件全被隐藏。

Application.ExecuteExcel4Macro "Show.ToolBar(""Ribbon"",False)" '隐藏功能区

取消隐藏功能区

Application.ExecuteExcel4Macro "Show.ToolBar(""Ribbon"",True)" '取消隐藏功能区

检查功能区是否隐藏

Sub CheckRibbonVisible()
    ' 检查功能区是否被隐藏
    If Application.CommandBars("Ribbon").Visible Then
        Debug.Print "功能区可见"
    Else
        Debug.Print "功能区被隐藏"
    End If
End Sub

最小化功能区

当功能区最小化时,仅能看到功能区选项卡的名称,单击选项卡的名称将临时显示该选项卡的控件。

Excel 没有单独的 VBA 命令来最小化功能区。下面的代码仅切换选项卡中控件的显示:

'切换显示功能区中的控件,只适用于Excel 2010 及以后的版本
Application.CommandBars.ExecuteMso "MinimizeRibbon"

如果功能区最初是最小化的,那么执行上面语句将恢复显示功能区中的控件,再次执行以上代码将使功能区最小化。

要确保仅在功能区最初没有最小化时执行该语句,首先要检查功能区的高度,当没有最小化时功能区高度值大于100,或者可以使用 GetPressedMso 方法来检查功能区的状态。下面的代码展示了最小化功能区的两种可能的方法:

'最小化功能区

'方法一
With Application
    If .CommandBars("Ribbon").Height > 100 Then
        .CommandBars.ExecuteMso "MinimizeRibbon"
    End If
End With

'方法二
With Application.CommandBars
    If Not .GetPressedMso("MinimizeRibbon") Then
        .ExecuteMso "MinimizeRibbon"
    End If
End With

如果功能区被隐藏,上面的切换语句不会取消隐藏。因此,需要在功能区最小化前取消其隐藏(如果其最初是隐藏的):

'如果被隐藏则取消隐藏功能区
With Application
    If Not .CommandBars("Ribbon").Visible Then
        .ExecuteExcel4Macro "Show.ToolBar(""Ribbon"",True)"
    End If
End With
'最小化功能区
With Application.CommandBars
    If Not .GetPressedMso("MinimizeRibbon") Then
        .ExecuteMso "MinimizeRibbon"
    End If
End With

如果功能区是自动隐藏的,那么执行上述 VBA 代码会导致运行时错误。因此,还要在最小化功能区之前检查功能区的高度,当功能区自动隐藏时其高度值小于25。

其最终代码如下:

Sub MinimizeRibbon()
'最小化功能区
    With Application
        '检查功能区是否自动隐藏
        If .CommandBars("Ribbon").Height < 25 Then
            MsgBox "当功能区自动隐藏时不能最小化功能区"
        Else
            '如果隐藏则取消隐藏功能区
            If Not .CommandBars("Ribbon").Visible Then
               .ExecuteExcel4Macro "Show.ToolBar(""Ribbon"",True)"
            End If
            '最小化功能区
            With .CommandBars
                If Not .GetPressedMso("MinimizeRibbon") Then
                    .ExecuteMso "MinimizeRibbon"
                End If
            End With
        End If
    End With
End Sub

参考文献

评论

您的电子邮件地址不会显示出来。*号为必填项。