2013-09-26 49 views
7

我想將Excel 2013中的功能區與VBA最小化。我不想切換功能區,我不想隱藏所有內容,包括「文件」,「插入」等。我嘗試了幾種不同的方法,但都沒有滿足我想要的。VBA將Excel中的功能區最小化

這個隱藏一切:

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

這將觸發:

CommandBars.ExecuteMso "MinimizeRibbon" 

這也切換:

SendKeys "^{F1}" 

我怎麼可以簡單地迫使我色帶最小化?

+1

爲什麼要混淆用戶?讓用戶決定功能區是否可見。 – adrianm

+1

它說用戶沒有做出決定?點擊一個按鈕,運行一個宏,做出決定。 –

+0

'WorkBook_Open()'事件中'Application.DisplayFullScreen = True'如何? – 2013-09-26 07:14:21

回答

5

不知道,當你試圖調用這個但這將努力色帶最小化,如果它的開放

If Application.CommandBars("Ribbon").Height >= 150 Then 
    SendKeys "^{F1}" 
End If 

打開色帶最小尺寸似乎是150,這隻會觸發,如果它是開放的

+0

謝謝,這很好,但我注意到我的絲帶打開時高度爲147,關閉時高度爲61。所以我把我的門檻設置爲100. –

+1

如果從用戶窗體啓動,sendkeys會失敗,因爲工作表沒有焦點,所以或者在sendkeys之前使用Appactivate,或者使用命令欄代碼 –

-3

如果你想這完全儘快打開工作簿,然後將其添加到工作簿中的代碼隱藏:

Private Sub Workbook_Open() 
    Application.ExecuteExcel4Macro "show.toolbar(""Ribbon"",False)" 
End Sub 
+0

似乎OP已經嘗試過這個,對結果不滿意。 – 2014-04-14 14:01:13

4

測量絲帶高度,撥動它,測量AGA如果更高,則重新切換。最好也設置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的交互。