利用VBA在EXCLE2010和2007中找回2003式的經典菜單和工具欄

衆所周知,從微軟的Office 12(也就是咱們所說的Office 2007)開始,軟件界面採用了Ribbon界面,又叫作功能區。Office 14((也就是咱們所說的Office 2010)一樣採用此種界面。對我我的而言,我很是喜歡這種全新的界面,不喜歡Office11((也就是咱們所說的Office 2003)的那種菜單工具欄界面。編程

可是,也有不少人用不慣這種新的界面,有人問我,有辦法找回原來的那種界面嗎。編程語言

答案固然是確定的。網上也有這種找回菜單欄和工具欄的軟件,有一個叫Classic Menu for Office,還有一個叫Addintools.工具

可是,對我來講,我不敢用這種軟件,由於不知道他們是怎麼亂搞的,用着不放心。code

因此,我利用本身強大的VBA知識(VBA是Office軟件內置的一門編程語言,Office軟件也是支持編程控制的,這一點不少人怕是不知道吧),自已編程創造出經典的菜單欄和工具欄。orm

1.首先,咱們打開EXCLE 2010(或者2007),而後,按下Alt+F11快捷鍵就能夠呼出EXCLE的VBA界面(有些人用的什麼精簡版,沒有VBA,那你就呼不出來了)。ci

2.咱們在呼出的VBA界面中,選擇"插入"菜單下的"模塊",就產生了一個新模塊,咱們在新模塊中輸入如下代碼:開發

 

'- ==========================================================
'*     文件名  :TYSoftExcel_14and12_like11.bas
'*     開發人員:袁培榮
'*     當前版本:1.0.2.2595
'*     建立時間:2012-02-25
'*     修改時間:2012-02-25
'*     功能說明:利用VBA在EXCLE2010和2007中找回2003式的經典菜單和工具欄
'*     版權說明:版權全部 袁培榮 YuanPeirong 
'*     編譯環境:Windows 7(x64) SP1 簡體中文專業版
'*     VBA版本: 7.0.1590
'- ==========================================================*/

Sub auto_open()
    ShowOldStyleMenus
End Sub

Private Sub ShowOldStyleMenus()
    On Error Resume Next
    
    Dim cBar As CommandBar
    Dim cBarCtrl As CommandBarControl
    Dim sMenuName As String
    Dim sToolbarName As String
    Dim iMenu As Integer
    
    sMenuName = "Old Style Menu"
    sToolbarName = "Old StyleToolbar"
    
    CommandBars(sMenuName).Delete '若是以前有同名菜單欄,刪除之
    Set cBar = CommandBars.Add(sMenuName, , , True) '添加命令欄,名字爲sMenuName,是一個臨時菜單欄,即經常使用菜單項
    '參考:Set newMbar = CommandBars.Add _(Name:="newMenubar", Position:=msoBarRight, _MenuBar:=True, temporary:=True)
    With cBar
        .Visible = True '臨時菜單欄可見
        For iMenu = 1 To 10
            Set cBarCtrl = .Controls.Add(Type:=msoControlPopup, ID:=30001 + iMenu) '依次添加2003版的彈出是菜單
        Next iMenu
        Set cBarCtrl = .Controls.Add(Type:=msoControlPopup, ID:=30022) '圖表菜單
        Set cBarCtrl = .Controls.Add(Type:=msoControlPopup, ID:=30177) '自選圖形
    End With
    
    CommandBars(sToolbarName).Delete '若是以前有同名工具欄,刪除之
    Set cBar = CommandBars.Add(sToolbarName, , , True) '設置變量
    With cBar
        .Visible = True
        Set cBarCtrl = .Controls.Add(Type:=msoControlButton, ID:=2520) 'New
        Set cBarCtrl = .Controls.Add(Type:=msoControlButton, ID:=23) 'Open
        Set cBarCtrl = .Controls.Add(Type:=msoControlButton, ID:=3) 'Save
        Set cBarCtrl = .Controls.Add(Type:=msoControlButton, ID:=4) 'Print
        Set cBarCtrl = .Controls.Add(Type:=msoControlButton, ID:=109) 'Print Preview
        Set cBarCtrl = .Controls.Add(Type:=msoControlButton, ID:=2) 'Spelling
        Set cBarCtrl = .Controls.Add(Type:=msoControlButton, ID:=21) 'Cut
        Set cBarCtrl = .Controls.Add(Type:=msoControlButton, ID:=19) 'Copy
        Set cBarCtrl = .Controls.Add(Type:=msoControlButton, ID:=22) 'Paste
        Set cBarCtrl = .Controls.Add(Type:=msoControlButton, ID:=108) 'Format Painter
        Set cBarCtrl = .Controls.Add(Type:=msoControlButton, ID:=210) 'Sort Ascending
        Set cBarCtrl = .Controls.Add(Type:=msoControlButton, ID:=211) 'Sort Descending
        Set cBarCtrl = .Controls.Add(Type:=msoControlButton, ID:=984) 'Help
        Set cBarCtrl = .Controls.Add(Type:=msoControlComboBox, ID:=1728) 'Font
        Set cBarCtrl = .Controls.Add(Type:=msoControlComboBox, ID:=1731) 'Font Size
        Set cBarCtrl = .Controls.Add(Type:=msoControlButton, ID:=113) 'Bold
        Set cBarCtrl = .Controls.Add(Type:=msoControlButton, ID:=114) 'Italic
        Set cBarCtrl = .Controls.Add(Type:=msoControlButton, ID:=115) 'Underline
        Set cBarCtrl = .Controls.Add(Type:=msoControlButton, ID:=120) 'Align Left
        Set cBarCtrl = .Controls.Add(Type:=msoControlButton, ID:=122) 'Center
        Set cBarCtrl = .Controls.Add(Type:=msoControlButton, ID:=121) 'Align Right
        Set cBarCtrl = .Controls.Add(Type:=msoControlButton, ID:=402) 'Merge and Center
        Set cBarCtrl = .Controls.Add(Type:=msoControlButton, ID:=395) 'Accounting Number Format
        Set cBarCtrl = .Controls.Add(Type:=msoControlButton, ID:=396) 'Percent Style
        Set cBarCtrl = .Controls.Add(Type:=msoControlButton, ID:=397) 'Comma Style
        Set cBarCtrl = .Controls.Add(Type:=msoControlButton, ID:=398) 'Increase Decimal
        Set cBarCtrl = .Controls.Add(Type:=msoControlButton, ID:=399) 'Decrease Decimal
        Set cBarCtrl = .Controls.Add(Type:=msoControlButton, ID:=3162) 'Decrease Indent
        Set cBarCtrl = .Controls.Add(Type:=msoControlButton, ID:=3161) 'Increase Indent
    End With '依次設置經常使用的命令
    Set cBar = Nothing '清除變量
    Set cBarCtrl = Nothing
    On Error GoTo 0
End Sub

3.而後,咱們在VBA界面中點擊保存,再關閉VBA界面,就回到了EXCLE界面。it

4.咱們將這個EXCLE文件另存爲 經典菜單和工具欄.xlsm (必定要存成xlsm,xls或xlsx格式都是不行的),而後關閉EXCLE軟件。io

5.咱們將獲得的 經典菜單和工具欄.xlsm 這個文件放到EXCLE的啓動目錄裏去,具體目錄爲:編譯

2007版:  C:\Program Files\Microsoft Office\Office12\XLSTART

2010版:  C:\Program Files\Microsoft Office\Office14\XLSTART

固然,前面的C:\Program Files\Microsoft Office要視你具體的Office安裝目錄而定。

6.好了,再次打開EXCLE 2010(或者2007) 你會發現,經典菜單和工具欄回來了。

附我本身的效果圖一張:

相關文章
相關標籤/搜索