VBA最小化Excel中的功能区

时间:2013-09-26 04:42:56

标签: excel vba excel-vba

我希望使用VBA最小化Excel 2013中的功能区。我不想切换功能区,我不想隐藏包括“文件”,“插入”等在内的所有内容。我尝试了几种不同的方法,但没有一种能满足我的需求。

这隐藏了一切:

Application.ExecuteExcel4Macro "Show.ToolBar(""Ribbon"",False)

这会切换:

CommandBars.ExecuteMso "MinimizeRibbon"

这也会切换:

SendKeys "^{F1}"

如何简单地强制我的色带最小化?

4 个答案:

答案 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