ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E文精选 > 综合应用 > 细品RibbonX(8):自定义Ribbon的“武器库”

细品RibbonX(8):自定义Ribbon的“武器库”

作者:绿色风 分类: 时间:2022-08-17 浏览:151
楼主
apolloh
“工欲善其事,必先利其器。”这里,我们先介绍自定义Ribbon的一些工具和资源,以方便后续的RibbonX开发。

可以使用记事本来自定义Ribbon,也可以使用第三方工具更方便地自定义Ribbon。
记事本
Office 2007采用了Open XML文件格式作为新标准,而新的文件实际上是包含着XML文件的压缩文件。XML文件实际上就是文本文件,因此能够使用记事本方便地打开这些文件并修改,从而自定义Ribbon。
显然,使用记事本作为自定义Ribbon的工具不是太方便,需要做很多工作。并且,由于没有提供代码验证,编写XML时很容易发生输入错误。
Microsoft Office 2007 Custom UI Editor
Microsoft Office 2007 Custom UI Editor(简称“Custom UI Editor”),是一款用来编辑Open XML文件的小工具,方便实用。此外,该工具还提供了代码验证和其它工具来辅助开发。您可以在下面的站点免费获得该工具:
http://openxmldeveloper.org/articles/customuieditor.aspx

在安装Custom UI Editor之前,确保系统中已经安装了Microsoft .Net Framework 2.0及以上版本。下载并解压后,双击OfficeCustomUIEditorSetup.msi即可安装该工具。
在Custom UI Editor中打开对功能区进行定制过的文件,例如上篇文章中的示例文件,如下图1所示。

 
图1:在Custom UI Editor中打开自定义功能区的Excel文件
打开Custom UI编辑器,您将会看到在工具栏上有5个按钮,如上图1所示。
Open(打开):打开想要编辑以改变其功能区的Excel文件。
Save(保存):保存xml到已在UI编辑器中打开的文件中(注意当该文件已在Excel中打开时不可能在编辑器中保存该文件)
Insert Icons(插入图标)):在文件中插入自已的图标(图标将会保存在文件中)
Validate(验证):验证xml以便确保没有语法问题
Generate Callbacks(产生回调):为xml中的每个onAction创建宏(回调)。选择所有的回调并将它们复制到工作簿里的标准模块中,然后可以在宏(回调)中的Sub和End Sub行之间插入相应的代码。
细心的读者可能会发现,在图中有很多乱码,那是因为在自定义功能区时使用了中文,而该编辑器目前版本还不支持中文。
与我们在记事本中看到的文本文件相比,在Custom UI Editor中的文件使用了颜色来区分不同的标记文本,并且对代码自动缩排,这些都能很好地帮助阅读和理解代码。同时,该编辑器还能容易地嵌入图片、验证代码、存储通用的代码片断,甚至生成响应回调(Callbacks)的代码框架。(回调,即单击定制的功能区控件时触发的自定义VBA程序。我们将在随后的文章中详细介绍回调)
XML Notepad 2007
XML Notepad 2007是另一款用于编辑或编写XML代码的工具,可以从Microsoft的站点免费下载该工具。XML Notepad能够捕捉验证代码的XML架构。
从下面的站点下载并安装XML Notepad 2007:
http://www.microsoft.com/downloads/details.aspx?familyid=72d6aa49-787d-4118-ba5f-4f30fe913628&displaylang=en

接着,从下面的站点下载并提取Office 2007 XML架构:
http://www.microsoft.com/downloads/details.aspx?familyid=15805380-F2C0-4B80-9AD1-2CB0C300AEF9&displaylang=en

最后,将架构链接到XML Notepad。打开XML Notepad,选择“View-Schemas”,在“XML Schemas”中选择“File-Add schemas”,然后找到要提取的XML架构文件夹,即C:\2007 Office System Developer Resources\Office2007XMLSchema\CustomUI.xsd。如下图2所示,单击“OK”。

 
图2:添加XML架构到XML Notepad
生成自定义功能区选项卡的XML代码的工作簿
Ron de Bruin



Excel 2007内置控件、组和选项卡列表

  • 在Microsoft网站上提供有Office所有内置控件名称(idMso属性)列表,其下载地址如下:
    http://www.microsoft.com/downloads/details.aspx?familyid=4329d9e9-4d11-46a5-898d-23e4f331e9ae

    除了XML外,在使用VBA操作功能区控件时,可以使用控件名称。
  • 下面的工作簿Built-in_Controls_Excel_2007.xlsm由Ron de BruinExcel 2007内置控件按钮图像名称

  • 在XML中,会使用imageMso属性来使用想要的内置图标。Jim Rech创建了一个显示Office 2007按钮图像的加载项。安装该加载项后,在工作簿中将添加一个名为Control Image的新选项卡。在该选项卡中,可以在文本框中输入一个索引值,在右侧会显示自该索引值后的50个图标。单击某图标,将会复制该图标控件的名称到剪贴板,然后可以将其粘贴到RibbonX中。从下面的地址下载该加载项BtnImages.xlam:      

  • John Walkenbach的mso image browser工作簿:
  • 从Microsoft的网站下载图标库:
    http://www.microsoft.com/downloads/details.aspx?familyid=12B99325-93E8-4ED4-8385-74D0F7661318

    打开该工作簿后,在“开发工具”选项卡中将会添加一个名为“Office Icons”的组,共有9个图标库,单击每个库的下拉按钮后单击一个图标,将会出现带有图标和图标名称的窗体。Excel 2007中的内置菜单
    在Excel 2007中,仍然可以创建和使用CommandBar对象,但与以前版本相比,其支持的属性和方法已大为减少。例如,没有控制工具栏大小和位置的属性,没有浮动工具栏。
  • Excel 2007中有65个快捷菜单,下面的工作簿显示了所有快捷菜单的索引值和名称:
  • 下面的工作簿显示了所有快捷菜单中第一层级的控件,包括快捷菜单的索引值、名称,控件的ID、Caption、Type、Enabled和Visible属性的值。      

    Excel 2007中的内置图像ID
  • 可以使用内置的图像确定快捷菜单中的图标,当然也可以用于功能区中。下面的工作簿显示了所有内置图像的FaceID属性值。      

  • 下面的工作簿的第一个工作表列出了Excel 2007中所有第一层级的控件及相应名称、ID、FaceId,第二个工作表列出了所有层级控件及相应名称、ID、FaceId,第三个工作表列出了所有图标FaceID,第四个工作表列出了所有弹出式菜单及控件的名称、FaceId、ID。      

    Excel 2003中菜单和工具栏名称及ID编号
  • 下面的工作簿列出了Excel 2003中菜单和工具栏的名称以及相应的ID编号:      
  • 下面的工作簿列出了Excel 2003中所有命令栏清单:
  • 下面的工作簿按索引顺序列出了Excel 2003中所有的命令栏:      

    Excel97-2003中的命令栏按钮图标及其相应的ID号
  • 下面的工作簿列出了Excel 2003及以前版本中所有命令栏按钮的图标及其ID编号:      
    列出Excel 2003命令栏清单的实用加载宏

  • 由erlandsendata设计的一个非常实用的一个加载宏。安装后,将在Excel菜单栏中添加一个名为EDC Tools的新菜单。可以列出当前工作簿中所有的命令栏、列出所有命令栏控件,命令栏按钮图标及相应的ID等。     

  • 下面的站点包含有列出97-2003版的Word、Excel和PowerPoint图标ID的加载宏:
    http://skp.mvps.org/faceid.htm
    例如,下面的加载宏列出了Excel 97-2003图标及其ID:

    关于图标的COM加载项:
    VSTO
  • VSTO 2005下载:
    http://www.microsoft.com/downloads/details.aspx?familyid=5e86cab3-6fd6-4955-b979-e1676db6b3cb
  • VSTO 2005 SE下载:
    http://www.microsoft.com/downloads/details.aspx?familyid=F5539A90-DC41-4792-8EF8-F4DE62FF1E81

    注意,如果Visual Studio 2005安装的是中文版,那么语言应选择简体中文。
  • 如果未安装Office主互操作程序集,则需要下载安装:
    Office 2003:

    Office 2007:


  • 可以在下面的站点下载免费图标编辑软件Paint.NET:
    http://www.getpaint.net/download.htmlRibbonX相关的网站资源
    RibbonX社区:
  • http://pschmid.net/office2007/forums/viewforum.php?f=2
  • http://www.vbaexpress.com/forum/forumdisplay.php?f=96
  • http://www.microsoft.com/office/community/en-us/default.mspx
  • http://www.microsoft.com/office/community/en-us/default.mspx?dg=microsoft.public.office.xml&lang=en&cr=US
  • http://forums.microsoft.com/MSDN/default.aspx
  • http://help.lockergnome.com/office/
  • http://www.mcse.ms/
  • http://openxmldeveloper.org/forums/12/showforum.aspx
  • http://openxmldeveloper.org/forums/default.aspx?GroupID=9RibbonX官方站点:
  • http://blogs.msdn.com/jensenh/
  • http://msdn.microsoft.com/en-us/office/aa905530.aspx
  • http://msdn.microsoft.com/en-us/library/bb187362.aspx
  • http://msdn.microsoft.com/en-us/library/aa432025.aspx
  • http://msdn.microsoft.com/en-us/office/aa905359.aspx
  • http://msdn.microsoft.com/en-us/office/aa905362.aspx
  • http://msdn.microsoft.com/en-us/library/aa432026.aspx
  • http://msdn.microsoft.com/en-us/architecture/aa699447.aspxRibbonX相关站点:
  • http://blogs.msdn.com/frice
  • http://blogs.msdn.com/kathleen/
  • http://blogs.msdn.com/brian_jones/
  • http://www.excelguru.ca/blog/category/the-ribbon/
  • http://www.rondebruin.nl/
  • http://www.google.com/search?q=RibbonX site:blogs.msdn.com
  • http://www.devsource.com/
  • http://www.devx.com/
  • http://news.softpedia.com/cat/Microsoft/免费的RibbonX共享资料:
  • 《Excel 2007 VBA参考大全》第14章 RibbonX您有更好的资源吗?欢迎在此留言推荐。
  • 2楼
    omnw
    老大,此帖中有几个工作簿都没有给出链接,请完善一下!
    3楼
    omnw
    感谢老大的修订

    免责声明

    有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
    ------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

    评论列表
    sitemap