利用VBA在EXCLE2010和2007中找回2003式的经典菜单和工具栏

众所周知,从微软的Office 12(也就是我们所说的Office 2007)开始,软件界面采用了Ribbon界面,又叫做功能区。Office 14((也就是我们所说的Office 2010)同样采用此种界面。对我个人而言,我非常喜欢这种全新的界面,不喜欢Office11((也就是我们所说的Office 2003)的那种菜单工具栏界面。

但是,也有很多人用不惯这种新的界面,有人问我,有办法找回原来的那种界面吗。

答案当然是肯定的。网上也有这种找回菜单栏和工具栏的软件,有一个叫Classic Menu for Office,还有一个叫Addintools.

但是,对我来说,我不敢用这种软件,因为不知道他们是怎么乱搞的,用着不放心。

所以,我利用自己强大的VBA知识(VBA是Office软件内置的一门编程语言,Office软件也是支持编程控制的,这一点很多人怕是不知道吧),自已编程创造出经典的菜单栏和工具栏。

1.首先,我们打开EXCLE 2010(或者2007),然后,按下Alt+F11快捷键就可以呼出EXCLE的VBA界面(有些人用的什么精简版,没有VBA,那你就呼不出来了)。

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()    ShowOldStyleMenusEnd SubPrivate 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 0End Sub

3.然后,我们在VBA界面中点击保存,再关闭VBA界面,就回到了EXCLE界面。

4.我们将这个EXCLE文件另存为 经典菜单和工具栏.xlsm (一定要存成xlsm,xls或xlsx格式都是不行的),然后关闭EXCLE软件。

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) 你会发现,经典菜单和工具栏回来了。

附我自己的效果图一张:

开上一部车,装着我们的故事,

利用VBA在EXCLE2010和2007中找回2003式的经典菜单和工具栏

相关文章:

你感兴趣的文章:

标签云: