ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 34204|回复: 43

自定义RibbonX Excel2007 菜单栏

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2009-7-1 23:04 | 显示全部楼层 |阅读模式
本帖已被收录到知识树中,索引项:UI界面定制
自定义RibbonX

之前介绍了RibbonX的常用控件,以及控件的属性、回调函数。了解这些内容之后,就可使用XML自定义RibbonX。最简单的方式就是手工方式:使用【记事本】编写XML代码,再添加到Excel工作簿中。另外,还可使用Custom UI Editor工具快速地定义RibbonX。
1  手工方式自定义RibbonX要自定义RibbonX,需要将工作簿解压出来,并向其中添加自定义代码。下面的例子向功能区添加一个名为【测试】的选项卡,在该选项卡中添加一个按钮用来显示工作表的信息,如图所示。
自定义RibbonX
按以下步骤完成上面的自定义选项卡:
(1)在当前文件夹中创建一个名为customUI的文件夹。
(2)打开【记事本】程序,输入以下内容:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
  <ribbon>
    <tabs>
      <tab id="rxtabTest" label="测试" >
          <group id="myGroup" label="显示">
              <button id="b1" imageMso="AccessTableEvents"
                    size="large"  label="工作表信息"/>
           </group>
     </tab>
   </tabs>
  </ribbon>
</customUI>
%注意:因为XML要区分大小写,所以一定要注意字母的大小写。
以上代码使用XML自定义RibbonX。有关XML的内容请读者参阅XML相关书籍。下面简单介绍本例中用到的元素。
  ●     <customUI>元素是XML的根容器,名称集(namespace)将它识别作为RibbonX文档。
  ●     <ribbon>元素是一个联系到可见的Ribbon的所有变化的容器。<customUI>元素也可以包含一个<commands>元素,用来重复利用内置控件。
  ●     <tabs>元素是一个联系到Ribbon中现有的或新的选项卡的所有变化的容器。<ribbon>元素也能包含<officeMenu>、<qat>和/或<contextualTabs>元素来控制Ribbon的相应部分。
  ●     < tab id="rxtabTest" label="测试">元素创建自定义的选项卡。
  ●     < group id="myGroup" label="显示">元素创建一个组。
  ●     <button>元素添加一个按钮,该按钮显示名称为“工作表信息”,当单击该按钮时执行工作簿中的showmsg宏,该宏需要在Excel的VBE中编写。
  ●     接下来就使用</group>、</tab>等代码结束各元素的定义。
(3)选择【文件】|【保存】命令,打开如图20-15所示的【另存为】对话框。在【保存类型】下拉列表框中选择“所有文件”,在【编码】下拉列表框中选择UTF-8,将文件保存到当前文件夹的customUI文件夹下,名称为customUI.xml。
保存XML文件
(4)打开Excel 2007,新建一个工作簿,保存为Test.xlsm。
(5)关闭Excel 2007。并将文件test.xlsm重命名为test.xlsm.zip,使Excel工作簿变为一个压缩文件。
(6)双击压缩文件用WinRar打开该文件。拖动当前文件夹下的customUI文件夹到打开的压缩文件窗口,将该文件夹及文件夹的内容添加到压缩文件中。
添加文件到压缩文件
(7)对话框中的_rels文件夹拖到当前文件夹中。
(8)打开_rels文件夹中的.rels文件,在最后一个Relationship标记与Relationships标记之间添加以下内容,将在工作簿文件与customUI文件夹中的customUI.xml文件之间创建关系。
<Relationship Id="customUIRelID"
Type="http://schemas.microsoft.com/office/2006/relationships/ui/extensibility" Target="customUI/customUI.xml" />
(9)保存并关闭.rels文件。
(10)删除图20-16所示对话框中的_rels文件夹,然后拖动第(7)步修改_rels文件夹到压缩文件Test.zip中。
(11)关闭压缩文件窗口,将压缩文件Test.xlsm.zip重命名为Test.xlsm。
(12)用Excel 2007打开Test.xlsm工作簿,将看到如图20-14所示的自定义选项卡。
(13)单击自定义的【测试】选项卡中的【工作表信息】按钮,因为还未编写回调函数,所以将弹出如图20-17所示的错误提示对话框。
(14)按组合键Alt+F11打开VBE环境。
(15)单击主菜单【插入】|【模块】命令增加一个标准模块。
(16)在【模块1】中输入以下过程代码:
Sub showmsg(control As IRibbonControl)
    Dim str1 As String
    With ActiveSheet
        str1 = "当前工作表信息:" & vbNewLine
        str1 = str1 & "工作表名:" & .Name & vbNewLine
        str1 = str1 & "行:" & .Cells.Rows.Count & vbNewLine
        str1 = str1 & "列:" & .Cells.Columns.Count & vbNewLine
        str1 = str1 & "已使用区域:" & .UsedRange.Address
    End With
    MsgBox str1, vbInformation + vbOKOnly, "提示信息"
End Sub
以上代码的作用是:获取活动工作簿的名称、工作表行列数、已使用区域的地址,并使用MsgBox对话框显示出来。
(17)返回Excel界面,单击自定义的【测试】选项卡中的【工作表信息】按钮,将弹出如图20-18所示的提示对话框,显示当前工作表的信息。
         
错误提示                                                                                     提示对话框
2  使用UI编辑器自定义RibbonX使用手工方式自定义RibbonX时,操作步骤比较繁琐。首先,需要将工作簿文件修改为压缩文件扩展名,将自定义RibbonX的XML代码添加到压缩文件中,其次,需要修改压缩文件中_rels文件夹中的文件,最后再将压缩文件名称改回Excel工作簿名称。
为了快速、高速地完成RibbonX的定义,微软公司提供了一个名为Custom UI Editor的工具,可用来处理存放在Excel Open XML工作簿中自定义RibbonX的实用程序。使用该工具软件能够自动处理放置自定义UI部分到压缩中的过程,并定义与它的关系,所有的处理只需通过单击鼠标完成。
1).认识UI编辑器读者可从http://openxmldeveloper.org/articles/customuieditor.aspx网站上下载Custom UI Editor工具软件。
在安装Custom UI Editor工具之前,应先检查系统是否安装.NET Framework 2.0。如果没有安装,需要首先下载安装后,再安装Custom UI Editor工具。
安装完成后,UI编辑器将在桌面创建一个快捷方式,双击运行UI编辑器,打开如图20-19所示的操作界面。
UI编辑器
UI编辑器由菜单栏、工具栏和一个文字编辑窗口组成。在文字编辑窗口中可输入自定义UI的XML代码。使用UI编辑器的一般步骤是:
(1)打开一个Office 2007格式的工作簿文件。
(2)在UI编辑器的编辑窗口中输入自定义RibbonX的XML代码。
(3)保存文件,退出UI编辑器。
(4)打开文件即可查看到自定义RibbonX的效果。
从以上步骤可以看出,使用UI编辑器可减少将文件改名为zip、将customUI文件加入压缩包、修改.rels文件等过程,可快速完成自定义UI的过程。
2).使用UI编辑器使用UI编辑器自定义UI的过程非常简单,下面就使用UI编辑器来制作上节的实例。
(1)在Excel 2007中新建一个工作簿,保存为Test2.xlsm,退出Excel 2007。
(2)打开UI编辑器(Custom UI Editor)。
(3)单击菜单File|Open命令,在打开的对话框中选择test2.xlsm文件。
(4)单击【打开】按钮,在UI编辑器中打开工作簿test2.xlsm。此时,编辑器窗口仍然显示为空白,只是标题栏显示了工作簿的文件名。
   
  打开文件                                                    打开工作簿
(5)因为工作簿Test2.xlsm中还没有自定义RibbonX的代码,所以UI编辑器的编辑窗口里为空。在编辑窗口中输入以下XML代码,用来定义RibbonX,如图20-22所示。
%提示:UI编辑器不支持中文,因此需要将上节自定义RibbonX代码的中文改成英文。
输入XML代码
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
  <ribbon>
    <tabs>
      <tab id="rxtabTest" label="Test" >
          <group id="myGroup" label="Display">
              <button id="b1" imageMso="AccessTableEvents"
                    size="large" label="Worksheet Info"/>
           </group>
     </tab>
   </tabs>
  </ribbon>
</customUI>
(6)单击工具栏中的Save按钮将内容保存到test2.xlsm文件中,然后关闭UI编辑器完成RibbonX的创建。
(7)打开工作簿test2.xlsm,可看到功能区新增加的选项卡。
自定义功能区
(8)在VBE中,编写过程showmsg用来显示当前工作表的信息。

[ 本帖最后由 dul 于 2009-7-1 23:17 编辑 ]

OfficeCustomUIEditorSetup.part1.rar

251.63 KB, 下载次数: 869

OfficeCustomUIEditorSetup.part2.rar

251.43 KB, 下载次数: 657

TA的精华主题

TA的得分主题

发表于 2009-7-1 23:16 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢LZ分享,不过建议LZ总结归纳成WORD或EXCEL档更好,容易收藏

TA的精华主题

TA的得分主题

发表于 2010-1-13 17:13 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

自定义RibbonX Excel2007 菜单栏 补充资料

我在之前学习了关于RibbonX 的内容,觉得介绍的比较详细现在与大家分享一下

TA的精华主题

TA的得分主题

发表于 2010-1-13 17:25 | 显示全部楼层

使用Open XML 格式文件手动自定义Excel2007功能区UI

此附件的出处如下
http://fanjy.blog.excelhome.net/ ... ves/2008/1006.html#

使用Open XML 格式文件手动自定义Excel2007功能区UI.rar

96.16 KB, 下载次数: 671

使用Open XML 格式文件手动自定义Excel2007功能区UI实例文件.rar

11.44 KB, 下载次数: 483

TA的精华主题

TA的得分主题

发表于 2010-1-13 17:37 | 显示全部楼层

控件介绍

以下附件为基本控件与容器控件介绍

Excel2007自定义功能区1.rar

120.85 KB, 下载次数: 742

Excel2007自定义功能区1.rar

120.85 KB, 下载次数: 488

TA的精华主题

TA的得分主题

发表于 2010-1-13 17:39 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

控件属性

以下为控件属性及回调函数介绍

Excel2007自定义功能区2.rar

81.09 KB, 下载次数: 605

TA的精华主题

TA的得分主题

发表于 2010-2-4 15:22 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-2-4 15:27 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-2-4 15:39 | 显示全部楼层
原帖由 chenagui 于 2010-1-13 17:25 发表
此附件的出处如下
http://fanjy.blog.excelhome.net/ ... ves/2008/1006.html#

不错这里讲授了中文的菜单方法,很好,多谢,

TA的精华主题

TA的得分主题

发表于 2010-2-4 16:35 | 显示全部楼层

回复 1楼 dul 的帖子

值得学习、借鉴!!!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-27 17:36 , Processed in 0.032959 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表