我有以下代码,应尽量减少Excel 2010功能区。我放在了
workbook_open
事件代码:
Dim iheight As Integer
iheight = Application.CommandBars.Item("Ribbon").Height
If iheight > 100 Then
Application.SendKeys ("^{F1}")
End If
然而,当我运行它时,它会打开excel帮助!我试过删除括号但得到相同的结果。
有什么想法吗?
欢呼声
答案 0 :(得分:1)
我在这里猜测你是在尝试在VBA编辑器中测试这段代码吗?单击播放按钮还是按F5?
如果您在VBA编辑器中进行测试,那将无法工作,因为Ctrl + F1 会显示帮助菜单。
您需要做的是从excel内部调用例程,因此excel是活动窗口。只需创建一个形状并为其分配例程进行测试,然后以您要去的方式调用它。
记住sendkeys
的作用,它只是模仿键盘
您可以丢失括号,但它们不会有任何区别
我的测试代码,工作正常:
Sub test6()
Dim iheight As Integer
iheight = Application.CommandBars.Item("Ribbon").Height
If iheight > 100 Then
Application.SendKeys ("^{F1}")
End If
End Sub
Sub MinRibbon()
Call test6 'assigned to a shape on an excel sheet
End Sub
您可以尝试保存工作簿,然后关闭它并打开它(因为您已经设置为在workbook_open
上运行),我认为没有理由不这样做
答案 1 :(得分:1)
你可以尝试跟随,隐藏功能区:
Sub hideRibbonIfVisible()
If RibbonVisibility = 0 Then
CommandBars.ExecuteMso "MinimizeRibbon"
End If
End Sub
Function RibbonVisibility() As Integer
RibbonVisibility = (CommandBars("Ribbon").Controls(1).Height < 100)
End Function