在Excel 2007的功能区中添加中文选项卡和控件

下面是Qu朋友在本站中的留言:
谢谢你这么专业地工作。能否做一个EXCEL2007下的中文菜单样板?我按您和网上其它人介绍的方法(无论是ZIP方式、还是用UI编辑器),总是无法正常。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
我想,他的意思是在Excel 2007的功能区中添加中文选项卡或者控件,例如自定义的组、按钮等,不过,选项卡或这些控件的标签都应该是中文的。下面我来演示具体的步骤。
在开始之前,先声明Office 2007 CustomUI Editor并不支持中文,因此不能使用这个方便的工具来定制Ribbon,只能使用修改Office 2007文件格式的方法来解决了。
步骤1 在桌面上创建一个名为customUI的文件夹。
步骤2 打开记事本,并在其中输入下面的XML代码:
<customUI xmlns=”http://schemas.microsoft.com/office/2006/01/customui“>
  <ribbon>
    <tabs>
      <tab id=”rxtabCustom”
           label=”我自已的选项卡”
           insertBeforeMso=”TabHome”>
          <group idMso=”GroupFont”/>
          <group idMso=”GroupZoom”/>
          <group id=”myGroup” label=”我的组”>
              <button id=”b1″
                      imageMso=”HyperlinkInsert”
                      size=”large”
                      label=”启动网站”
                      onAction=”surf”/>
              <button id=”b2″
                      imageMso=”HappyFace”
                      label=”微笑图标”
                      onAction=”smile”/>
              <button id=”b3″
                      imageMso=”FormatPainter”
                      label=”格式刷图标”
                      onAction=”paint”/>
              <button id=”b4″
                      imageMso=”AutoFilterClassic”
                      label=”筛选图标”
                      onAction=”filter”/>
           </group>
     </tab>
   </tabs>
  </ribbon>
</customUI>
该XML文件在Excel的“开始”选项卡前创建了一个名为“我自已的选项卡”的选项卡,并添加了三个组,前两个为Excel内置的组“字体”和“显示比例”,第三个为名为“我的组”的自定义组,其中包括四个自定义的按钮“启动网站”、“微笑图标”、“格式刷图标”和“筛选图标”,并分别定义了onAction属性。
步骤3 将该文件命名为customUI并以.xml为扩展名保存在customUI文件夹中,并关闭该文件。在保存时注意选择“编码”下拉框中的编码为UTF-8,如下图所示。
SaveAsUTF8Format
步骤4 在桌面上新建一个启用宏的Excel文件,并命名为MyCustomUI.xlsm。因为在自定义的XML中,包含了产生回调的onAction属性,所以创建的Excel文件需要启用宏。
步骤5 在MyCustomUI.xlsm中,按Alt+F11组合键打开VBE,并插入一个标准模块,添加下面的代码供回调使用:
Option Explicit‘Callback for b1 onAction
Sub surf(control As IRibbonControl)
    ActiveWorkbook.FollowHyperlink _
      Address:=”http://www.excelperfect.com”, _
      NewWindow:=True
End Sub
‘Callback for b2 onAction
Sub smile(control As IRibbonControl)
    MsgBox “您单击了微笑图标!呵呵…”
End Sub
‘Callback for b3 onAction
Sub paint(control As IRibbonControl)
    MsgBox “您单击了格式刷图标!”
End Sub
‘Callback for b4 onAction
Sub filter(control As IRibbonControl)
    MsgBox “您单击了筛选图标!”
End Sub

步骤6 关闭工作簿MyCustomUI.xlsm。
步骤7 在MyCustomUI.xlsm图标上单击右键,选择“重命名”,在文件名后添加“.zip”扩展名,使其变为一个压缩文件。如下图所示。
changeextendnameforzip
步骤8 双击该压缩文件,打开压缩包,将customUI文件夹拖到该压缩包中,如下图所示。
customuitozip
步骤9 将压缩包中的_rels文件夹拖至桌面。
步骤10 打开桌面中的_rels文件夹,然后用记事本打开其中的.rels文件,如下图所示。
relsfile
步骤11 在.rels文件的最后</Relationships>一个之前,添加下面的XML:
<Relationship Id=”customUIRelID” Type=”http://schemas.microsoft.com/office/2006/relationships/ui/extensibility” Target=”customUI/customUI.xml”/>
步骤12 保存该.rels文件并关闭。
步骤13 将修改后的_rels文件夹拖回MyCustomUI压缩包中。如果出现提示,则选择是,覆盖原文件。关闭压缩包。
步骤14 将MyCustomUI.xlsm.zip的.zip扩展名删除。
步骤15 双击MyCustomUI.xlsm文件,打开工作簿,此时在Excel内置选项卡“开始”的前面添加了一个自定义选项卡,在该选项卡中添加了两个内置组和一个自定义组,如下图所示。
MyCustomUIResult1
看看吧,都是中文的,成功!
示例文件下载:http://www.drexcel.cn/article.asp?id=40


提示:您可以在评论中使用HTML标签,且任何与HTML标签相同的符号都会被理解为HTML标签并以相应的格式显示.如果您的评论中有代码,可以使用相应的标签,例如,如果有VB或VBA代码,则可以使用[vb]标签,即[vb]放置的代码[/vb],这样会很清晰地显示代码.

5条评论

  1. Qu:

    谢谢,就是要最后的图示效果!不过您给的示例文件下载网址链接下载不了,能否发一份到我的邮箱?(qsm99@163.com)感谢!

  2. Qu:

    遗憾的是,按照版主的指引,本人仍然未做成功,请教这是为何?步骤11是否添加在之前?

  3. excelperfect:

    Qu,您好。不知您的错误出在哪里,可以将出错信息告诉我,我帮您分析。
    这里的关键在步骤3:保存xml文件时必须将编码改为UTF-8,否则会出错。
    步骤11中,可能是由于博客编辑器的原因,自动省掉了</Relationships>,应该是在.rels文件中的</Relationships>之前添加语句,这条语句将链接至创建的自定义xml文件。

    示例文档已发至您邮箱。
    如果您对RibbonX感兴趣,今后可多交流。

  4. Qu:

    已收到示例文档,运作正常,谢谢!问题可能出在.rels文件,好好学习一下。再次感谢!

  5. 亡命天涯:

    非常感谢excelperfect如此辛勤的工作,从这儿我学到了不少知识。我也是一个EXCEL编程的爱好者,在一些文章上看见有如下2个文件可从MSDN网站上下载,但我一直没有搜索到,不知能否帮帮忙:
    1、Office2007IconsGallery.xlsm
    2、ExcelRibbonConrtols.xls
    我的邮箱是:CHJ-CJCC@163.COM

    谢谢excelperfect

发表您的评论