2013-09-26 48 views
7

Tôi muốn thu nhỏ ruy-băng trong Excel 2013 bằng VBA. Tôi không muốn chuyển đổi ribbon, và tôi không muốn ẩn tất cả mọi thứ bao gồm "File", "Insert", vv Tôi đã thử một số phương pháp khác nhau, nhưng không có gì đáp ứng những gì tôi muốn.VBA giảm thiểu băng trong Excel

này ẩn tất cả mọi thứ:

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

này Toggles:

CommandBars.ExecuteMso "MinimizeRibbon" 

này cũng Toggles:

SendKeys "^{F1}" 

Làm thế nào tôi có thể chỉ đơn giản là buộc ruy băng của tôi để được giảm thiểu?

+1

Tại sao bạn muốn gây nhầm lẫn cho người dùng? Cho phép người dùng quyết định xem băng có được hiển thị hay không. – adrianm

+1

Trường hợp nào người dùng không quyết định? Nhấp vào một nút, chạy macro, quyết định được thực hiện. –

+0

về 'Application.DisplayFullScreen = True' trong sự kiện' Workbook_Open() 'như thế nào? –

Trả lời

5

Không chắc khi bạn đang cố gắng gọi này nhưng điều này sẽ làm việc để giảm thiểu băng nếu mở

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

mở kích thước Ribbon tối thiểu của nó có vẻ là 150 vì vậy đây sẽ chỉ chuyển đổi nếu nó đang mở

+0

Cảm ơn, điều này thật tuyệt, nhưng tôi nhận thấy ruy băng của tôi có chiều cao 147 khi mở và 61 khi đóng. Vì vậy, tôi đặt ngưỡng của tôi là 100. –

+1

các phím sẽ không thành công nếu được khởi chạy từ Biểu mẫu người dùng vì trang tính không có tiêu điểm, do đó, hoặc sử dụng Appactivate trước khi gửi hoặc sử dụng mã lệnh –

-3

Nếu bạn muốn điều này được ẩn hoàn toàn trong thời gian sớm workbook được mở ra sau đó thêm video này vào mã workbook:

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

Dường như OP đã thử điều này và không hài lòng với kết quả. –

4

đo chiều cao Ribbon, chuyển đổi nó, đo Aga trong và nếu cao hơn, lại chuyển đổi. Tốt nhất cũng nên đặt Application.Screenupdating = false.

ht1 = Application.CommandBars("Ribbon").Height 
SendKeys "^{F1}", False 
DoEvents 
ht2 = Application.CommandBars("Ribbon").Height 
If ht2 > ht1 Then SendKeys "^{F1}", False 

Và tôi ghét nó khi câu hỏi dân gian tại sao bạn muốn làm những gì bạn muốn. Tôi có một ứng dụng độc tài và cần 100% quyền kiểm soát đối với sự tương tác với Excel.