RibbonX:EXCEL2013自定义功能区

来源:互联网 发布:雪纺衫淘宝好评 编辑:程序博客网 时间:2024/05/24 07:06

转自http://club.excelhome.net/thread-1047254-1-1.html


参考各位前辈做的自定义office2007和office2010功能区的帖子,经过不断摸索,现做出EXCEL2013版本的自定义功能区

再次特别感谢   佛山小老鼠  老师,灵感全来于此!!!!!下面进入正题:
第一步:创建EXCEL启用宏的工作簿  自定义.xlsm

        打开VBE编辑器,插入模块,建立2个测试的宏

Sub 测试1(control As IRibbonControl)      msgbox "这是测试宏1"End SubSub 测试2(control As IRibbonControl)       msgbox "这是测试宏2"End Sub

 保存并关闭 自定义.xlsm 工作簿
第二步:重命名 自定义.xlsm 为 自定义.xlsm.zip   (就是加一个.zip的后缀)
        1.右键用压缩工具打开文件,用记事本打开_rels文件夹里的.rels文件
        2.在最后一句 </Relationships> 前插入以下代码:

<Relationship Id="customUIRelID" Type="http://schemas.microsoft.com/office/2006/relationships/ui/extensibility" Target="customUI/CustomUI.xml"/>

 3.关闭记事本,提示保存,选择保存
        4.关闭压缩文件,提示在压缩文件中更新变更,都点确定
第三步:新建一个customUI文件夹,新建一个文本文档
        打开文本文档另存为:ucstomUI.xml  ,编码选择为:UTF-8,保存到customUI文件夹里
        删除那个新建的文本文档
        
        用记事本打开customUI.xml文件,把以下代码复制进去后保存

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">  <ribbon startFromScratch="true">  <qat>   <sharedControls>    <button idMso="FileSave" />    <button idMso="PrintPreviewAndPrint" />   </sharedControls>  </qat>    <tabs>      <tab id="rxtabCustom" label="我的自定义选项卡" insertBeforeMso="TabHome">        <group id="mygroupA" label="测试">              <button id="c1" image="A" label="测试宏1" size="large" onAction="测试1"/>              <button id="c2" image="B" label="测试宏2" onAction="测试2"/>        </group>     <group idMso="GroupViewShowHide" label="显示"></group>     <group id="mygroupB" label="常用工具">             <control idMso="Undo" size="large" label="撤销" />             <control idMso="Redo" size="large" label="恢复" />             <control idMso="CellAlignmentOptions" size="large" label="格式" />             <control idMso="ConditionalFormattingMenu" size="large" label="条件格式" />             <control idMso="Filter" size="large" label="筛选" />             <control idMso="DataValidationMenu" size="large" label="数据验证" />             <control idMso="ViewFreezePanesGallery" size="large" label="冻结窗格" />     </group>    <group id="mygroupD" label="VBA开发">            <control idMso="VisualBasic"  label="VBE编辑器" />            <control idMso="MacroRecord"  label="录制新宏" />            <control idMso="PlayMacro"  label="查看宏" />     </group>      </tab>    </tabs>  </ribbon></customUI>
下面分别解释各代码的意思:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
  <ribbon startFromScratch="true">      (这个是隐藏所有系统功能区,如果不想隐藏可以写 = false)
  <qat>                                  (这里开始自定义快捷功能区,就是最顶端的位置)
   <sharedControls>
    <button idMso="FileSave" />               (保存按钮)
    <button idMso="PrintPreviewAndPrint" />    (打印预览和打印按钮)
   </sharedControls>
  </qat>                                   (快捷功能区定义完毕)
    <tabs>                                   (这里开始定义主功能区,以/tabs结束)
      <tab id="rxtabCustom" label="我的自定义选项卡" insertBeforeMso="TabHome">   (定义选项卡的名称和位置,这里定义在开始选项卡之前)
        <group id="mygroupA" label="测试">                                                       (第1组:这里定义组名称,注意所有的组名称和ID都不能重复)
              这2个按钮使用的是自己定义个个性图标,使用方法请看 第四步,如果想用系统自带的图标需要修改 image 改成 imageMSO ,然后省略第四步,图片名称及控件名称后面有附件
              <button id="c1" image="A" label="测试宏1" size="large"/>  (自定义按钮的ID,图片,指定宏 size="large" 表示是大图标显示)
              <button id="c2" image="B" label="测试宏2"/>                 (不想大图标显示就像这样去掉 size=)
        </group>                                                              (一个组定义完毕之后加上这么1句)
     <group idMso="GroupViewShowHide" label="显示"></group>                     (第2组:这一句表示加了一整个系统自带的组进去了,下面添加耽搁的系统按钮)
     <group id="mygroupB" label="常用工具">                                       (第3组:添加单个系统按钮)
             <control idMso="Undo" size="large" label="撤销" />                                 (撤销按钮)                           
             <control idMso="Redo" size="large" label="恢复" />                                  (恢复按钮)
             <control idMso="CellAlignmentOptions" size="large" label="格式" />                   (格式)
             <control idMso="ConditionalFormattingMenu" size="large" label="条件格式" />           (条件格式)
             <control idMso="Filter" size="large" label="筛选" />                                   (筛选)
             <control idMso="DataValidationMenu" size="large" label="数据验证" />                    (数据有效性)
             <control idMso="ViewFreezePanesGallery" size="large" label="冻结窗格" />                 (冻结窗口)
     </group>
    <group id="mygroupD" label="VBA开发">                                         (第4组:也是系统按钮)                    
            <control idMso="VisualBasic"  label="VBE编辑器" />                     (顾名思义,不一一解释了)
            <control idMso="MacroRecord"  label="录制新宏" />
            <control idMso="PlayMacro"  label="查看宏" />
     </group>                                                                      (第4组结束)
      </tab>                                           (第一个选项卡结束)
    </tabs>                                             (全部结束)
  </ribbon>
</customUI>
第四步:再customUI文件夹里再建2个文件夹 images 和 _rels
       1. 在images文件夹里加2张个性的png格式的图标 分别命名 001.png   002.png
       2. 在_rels文件夹里建一个文件,命名:CustomUI.xml.rels,方法参照第三步,然后把以下代码复制进去:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="A" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Target="images/001.png"/><Relationship Id="B" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Target="images/002.png"/></Relationships>

第五步:再用压缩工具打开 自定义.xlsm.zip
        把做好的customUI文件夹拖到压缩文件里,保存
        然后再把 自定义.xlsm.zip  改名成: 自定义.xlsm

        打开文件,可能有2次提示,每次都点确定
        文件打开之后,你会看到最顶端你的文件名会显示 自定义.xlsm[修复的],出现这种情况,你只需把文件另存为启用宏的工作簿就正常了!!!
        再打开文件即可看到效果

基本功能已经完成,这个只能让你现在做的这个文件的功能区改变,如果想要让你的电脑整个应用这个设置请继续往下看:

第六步:把你做好的文件做成加载宏,并做一个安装和卸载的功能:
     1.新建一个文件夹,取名为excel2013功能区安装与卸载
     2.把 自定义.xlsm 工作簿另存为加载宏工作簿,保存类型选择“Excel 加载宏(*.xlam)",保存在 excel2013功能区安装与卸载 文件夹里,文件名不变
     3.新建一个启用宏的工作簿(*.xlsm),文件名为“2013安装””,在thisworkbook模块里放入以下代码

Private Sub Workbook_Open()     AddIns.Add Filename:=ThisWorkbook.Path & "\自定义.xlam"     Application.AddIns("自定义").Installed = 1 End Sub
然后保存,关闭工作簿
      4.依照第3步,建一个 2013卸载 启用宏的工作簿,在thisworkbook模块里放入以下代码

Private Sub Workbook_Open()    On Error Resume Next   AddIns("自定义").Installed = FalseEnd Sub


 然后保存,关闭工作簿
OK,整个制作过程完毕

0 0
原创粉丝点击