使用Excel开发小系统时,可能会遇到希望隐藏功能区的场景,如下图所示。
在这样的操作环境中,更容易定制用户的操作界面,避免误操作。在Excel 2003中隐藏系统菜单就可以了,但是Excel 2007开始引入的Ribbon功能区,但是VBA对象模型中并没有提供功能区的操作接口。
也许VBA爱好者知道,VBA中保留了一个古董级别的方法ExecuteExcel4Macro
,可以用来执行一个 Microsoft Excel 4.0 宏函数,微软官方帮助文档如下。
https://docs.microsoft.com/zh-cn/office/vba/api/excel.application.executeexcel4macro?WT.mc_id=M365-MVP-33461
如果小伙伴不清楚什么是Microsoft Excel 4.0 宏函数,那么可以跳过这一段,直接看代码。
就是这个古董确可以轻松实现隐藏/显示Ribbon功能区,是不是很神奇。
Sub Hide_Ribbon()
Application.ExecuteExcel4Macro "show.toolbar(""Ribbon"",False)"
End Sub
核心代码就一行,也没有啥可解释的。
关闭Excel,再次打开Excel,功能区将恢复正常显示,因此使用在定制Excel系统中时,可以在工作簿的Open事件中执行隐藏Ribbon功能区。
如果不重新打开Excel,那么使用如下代码也可以恢复显示Ribbon功能区。
Sub Restore_Ribbon()
Application.ExecuteExcel4Macro "show.toolbar(""Ribbon"",True)"
End Sub