细品RibbonX(8):自定义Ribbon的"武器库"
资料整理来自于论坛
完整版下载地址:http://download.csdn.net/download/nodeman/10264659
Loading ...
"工欲善其事,必先利其器。"这里,我们先介绍自定义Ribbon的一些工具和资源,以方便后续的RibbonX开发。
自定义Ribbon的工具
可以使用记事本来自定义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制作了一个工作簿,可以用来生成在功能区中自定义选项卡的XML代码。单击下面的链接下载此工作簿:
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 Bruin创建,包含Excel 2007内置控件名称和相应的图标,非常直观:
Excel 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.html
RibbonX相关的网站资源
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=9
RibbonX官方站点:
- 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.aspx
RibbonX相关站点:
- 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