我希望使用VBA最小化Excel 2013中的功能区。我不想切换功能区,我不想隐藏包括“文件”,“插入”等在内的所有内容。我尝试了几种不同的方法,但没有一种能满足我的需求。
这隐藏了一切:
Application.ExecuteExcel4Macro "Show.ToolBar(""Ribbon"",False)
这会切换:
CommandBars.ExecuteMso "MinimizeRibbon"
这也会切换:
SendKeys "^{F1}"
如何简单地强制我的色带最小化?
答案 0 :(得分:6)
不确定您何时尝试调用此功能,但如果功能区打开
,这将最大限度地减少功能区If Application.CommandBars("Ribbon").Height >= 150 Then
SendKeys "^{F1}"
End If
打开功能区最小尺寸似乎为150,因此只有在打开时才会切换
答案 1 :(得分:6)
测量色带高度,切换,再次测量,如果更高,则重新切换。最好也设置Application.Screenupdating = false。
ht1 = Application.CommandBars("Ribbon").Height
SendKeys "^{F1}", False
DoEvents
ht2 = Application.CommandBars("Ribbon").Height
If ht2 > ht1 Then SendKeys "^{F1}", False
当民间质疑为什么你想做你想做的事情时,我确实讨厌它。我有一个独裁者应用程序,需要100%控制与Excel的交互。
答案 2 :(得分:0)
如果没有其他人搞乱设置(如果每个人都做了我要说的事情,那会很棒),如果在关闭之前重新切换色带最小化,它将始终处于打开状态,因此可以最小化。只需确保在退出此功能区之前手动隐藏功能区,然后它就会始终隐藏在打开状态。
Private Sub Workbook_Open()
Application.DisplayFormulaBar = False
Application.CommandBars.ExecuteMso "MinimizeRibbon"
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.DisplayFormulaBar = True
Application.CommandBars.ExecuteMso "MinimizeRibbon"
End Sub
答案 3 :(得分:-3)
如果要在打开工作簿后立即完全隐藏它,请将其添加到工作簿代码中:
Private Sub Workbook_Open()
Application.ExecuteExcel4Macro "show.toolbar(""Ribbon"",False)"
End Sub