VBA在Excel 2013中自动隐藏function区
如何在VBA中Auto-hide Ribbon
Excel 2013中的Auto-hide Ribbon
? 我想通过点击下图中标有蓝色的Excel菜单右上angular的上箭头图标,然后点击标有橙色的第一个选项来实现我所得到的结果:
我也会对VBA切换回第三个选项Show Tabs and Commands
感兴趣。 对我来说重要的是保持在Excel菜单上的上箭头图标(用蓝色标记)。
我已经尝试过在这个线程中显示的提示: VBA将Excel中的function区最小化,但是我对结果不满意。
尝试1
Application.ExecuteExcel4Macro "Show.ToolBar(""Ribbon"",False)
这很好,但隐藏了蓝色的图标。
尝试2
CommandBars.ExecuteMso "MinimizeRibbon"
这接近我想要的。 这保持蓝色图标,但不隐藏整个菜单。 它切换到图片Show Tabs
显示的第二个选项。
尝试3
SendKeys "^{F1}"
attampt根本不起作用。 此外,它应该模仿的尝试2.所以即使这不会让我满意。
我看不出有其他人提出这个问题…这不是一个解决方法,这是我认为你正在寻找的实际idMSO。 这段代码使得我的Excel窗口看起来像第一个选项为Auto-Hide Ribbon
所做的一样。
在代码运行之前,我的窗口看起来像这样,在'恢复'的大小:
运行以下代码:
Sub HideTheRibbon() CommandBars.ExecuteMso "HideRibbon" End Sub
将使窗口看起来像这样,在最大化的窗口大小(就像手动按Auto-Hide Ribbon
button会发生的情况一样):
如果要在工作簿打开时自动隐藏function区,请将其放在工作簿代码中:
Sub Workbook_Open() CommandBars.ExecuteMso "HideRibbon" End Sub
或者,为了达到同样的目的,你可以把这段代码放在一个模块中:
Sub Auto_Open() CommandBars.ExecuteMso "HideRibbon" End Sub
如果您希望窗口恢复正常,请再次运行完全相同的代码。 换句话说,下面的代码在运行时根本不会有任何视觉上的改变,因为idMSO“HideRibbon”是一个toggleButton:
Sub HideTheRibbon() CommandBars.ExecuteMso "HideRibbon" CommandBars.ExecuteMso "HideRibbon" End Sub
如果您需要excel中所有idMSO的完整列表,请单击适用于您的以下内容: Excel 2013+ , Excel 2010 , Excel 2007
也许你应该做一些更复杂的事情:
使用CommandBars.ExecuteMso "MinimizeRibbon"
显示/隐藏function区。 根据您的需要,您可以显示/隐藏function区中的所有其他选项卡。 例如,在这里使用代码的东西 – > Excel隐藏/显示除了自定义选项卡的function区上的所有选项卡
这样2个步骤:
第1步 – 用CommandBars.ExecuteMso显示或隐藏
第2步 – 使用链接中的一些macros显示或隐藏其余的选项卡。
一个小的解决方法,但你会得到你想要的。
首先,转到Excel选项,然后转到“快速操作工具栏”。
从那里,search“隐藏function区”并添加到工具栏。 在QAT之后,您可以用ALT +#快速调用它(在我的电脑上,这是第8件事,所以ALT + 8会自动隐藏)。
然后只需添加一个SendKeys ALT然后8:
Sub Macro1() ActiveSheet.Activate 'Cells(1, 1).Select SendKeys "%0", True SendKeys "8", True End Sub
注意:我知道有ActiveSheet.Activate
是愚蠢的,我只是添加了testingmacros。 根据被调用的方式,你可以删除/注释掉这一行。 %
相当于ALT
,在技术上,我必须按0然后8,因此两条线。
我将其用于演示目的
ActiveWindow.DisplayGridlines = False
ActiveWindow.DisplayHeadings = False
Application.DisplayFormulaBar = False
Application.DisplayFullScreen = True这是我用来隐藏function区
试试这个:
Sub ShowHideRibbon() If CommandBars("Ribbon").Controls(1).Height < 100 Then CommandBars.ExecuteMso ("MinimizeRibbon") Else CommandBars.ExecuteMso ("MinimizeRibbon") End If End Sub
或这个:
Sub ShowHideRibbon1() If Application.ExecuteExcel4Macro("Get.ToolBar(7,""Ribbon"")") Then Application.ExecuteExcel4Macro "Show.ToolBar(""Ribbon"", False)" Else Application.ExecuteExcel4Macro "Show.ToolBar(""Ribbon"", True)" End If End Sub
我在Workbook_Open上调用这个macros来检查function区,如果没有隐藏,它会隐藏function区(实际上它位于另一个Sub中,也删除了Workbook_Open中的配方栏,状态栏,标题和网格线)…
Sub HideRibbon() If CommandBars("Ribbon").Controls(1).Height < 100 Then Exit Sub Else CommandBars.ExecuteMso ("MinimizeRibbon") End If End Sub
然后我在Workbook_BeforeClose上调用这个macros来检查function区,如果没有显示,它将显示下一个打开的excel电子表格的function区。
Sub ShowRibbon() If CommandBars("Ribbon").Controls(1).Height > 100 Then Exit Sub Else CommandBars.ExecuteMso ("MinimizeRibbon") End If End Sub
这消除了在打开工作簿时隐藏色带的可能性,并且用户然后手动显示色带,而色带又反过来靠近并实际隐藏色带。 在打开的时候,色带会再次显示。 每当打开和closures工作簿时,这将保持不变。