打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VBA专题10-5:使用VBA操控Excel界面之隐藏/取消隐藏及最小化功能区

excelperfect

可以重命名和隐藏内置选项卡和内置组,改变其在功能区中的顺序。然而,不能重命名和隐藏内置控件,修改内置控件的图标,修改功能区内置组中内置控件的顺序。

要在组中添加内置的和自定义控件,必须将它们添加到内置选项卡中的自定义组,或者新的、自定义的选项卡。

隐藏和取消隐藏功能区

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

示例代码:

'隐藏和取消隐藏功能区

Application.ExecuteExcel4Macro'Show.ToolBar(''Ribbon'',False)' '隐藏

Application.ExecuteExcel4Macro'Show.ToolBar(''Ribbon'',True)' '取消隐藏

尽管功能区被隐藏了,但其高度仍然是隐藏前的值。因此,检查功能区的高度不能告诉是否功能区被隐藏。下面的代码是检查功能区是否隐藏的合适的方法:

'检查是否功能区被隐藏

If Application.CommandBars('Ribbon').Visible Then

Debug.Print'可见的'

Else

Debug.Print'隐藏'

End If

最小化功能区

当功能区最小化时,仅能看到功能区选项卡的名称。单击选项卡的名称将临时显示该选项卡的控件。不使用VBA代码,要切换到显示该选项卡中的控件,只需双击当前选择的选项卡的名称或者按Ctrl+F1键。

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

'切换显示功能区中的控件

Application.CommandBars.ExecuteMso 'MinimizeRibbon'

注意,MinimizeRibbon命令在Excel 2007中不存在。上面的代码只适用于Excel 2010及以后的版本。

如果功能区最初是最小化的,那么无意中执行上面语句将恢复显示功能区中的控件。要确保仅在功能区最初没有最小化时执行该语句,首先要检查功能区的高度,当没有最小化时功能区高度值大于100,或者可以使用GetPressedMso方法来检查功能区的状态。下面的代码展示了最小化功能区的两种可能的方法:

'最小化功能区

'1种方法

With Application

    If.CommandBars('Ribbon').Height > 100 Then

       .CommandBars.ExecuteMso 'MinimizeRibbon'

    End If

End With

'2种方法

With Application

    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

'最小化功能区

With Application

    '检查功能区是否自动隐藏

    If.CommandBars('Ribbon').Height < 25 Then

        MsgBox '当其自动隐藏时不能最小化功能区'

    Else

        '如果隐藏则取消隐藏功能区

        If Not .CommandBars('Ribbon').VisibleThen

           .ExecuteExcel4Macro'Show.ToolBar(''Ribbon'',True)'

        End If

        '最小化功能区

        With .CommandBars

            If Not.GetPressedMso('MinimizeRibbon') Then

                .ExecuteMso'MinimizeRibbon'

            End If

        End With

    End If

End With

说明:本专题系列大部分内容学习整理自《Dissectand Learn Excel VBA in 24 HoursChangingworkbook appearance》,仅供学习研究。

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
如何利用VBA代码,屏蔽EXCEL工作表的复制功能
VBA Excel内置菜单应用
excel?VBA?禁用“剪切”的方法
用vba判断功能区的状态
Excel禁止插入行列、删除行列的方法
如何在Excel中添加开发工具选项卡
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服