RibbonX:自定义Office 2007功能区——访问UI定制层(一)

RibbonX:自定义Office 2007功能区
第二章 访问UI定制层学习笔记
在开始自定义功能区之前,需要知道如何以及在哪里放置用来定制界面的代码。本章的内容:

  • 新的Office 2007文件的结构。学习如何访问Ribbon定制层并存储必需的代码。
  • 一些方便的工具,使用它们将更容易创建、编写程序和调试Ribbon定制。
  • 关于Word和Excel功能区定制、Access功能区定制的示例。

一、访问Excel和Word功能区定制层
1、新的Excel和Word文件
Office 2003及以前的版本使用二进制文件存储文档,而Office 2007中采用了OpenXML文件格式作为新的标准,新的文件实际上被包含在被压缩的XML格式中。
(1)使用记事本非常容易地开启并修改潜在的XML文件。
(2)在不同的应用程序中使用相似的数据结构来获得相似的结果。从Excel到Word,甚至PowerPoint,定制新的Office 2007用户界面遵循相同的方法。
(3)通常,存储在新文件格式中的的文件被压缩,因而比旧的二进制文档占用更少的空间。
2、使用记事本创建功能区定制
下面的示例创建一个非常简单的功能区定制:在功能区中添加一个新的选项卡,并在该选项卡中放置两个内置的组。
(本例以Excel 2007为例。在Word 2007中的步骤相同,只需打开Word,使用docx文件代替xlsx文件)
步骤1 创建自定义UI文件
(1)创建一个名为customUI的文件夹。
(2)在该文件夹中,创建一个名为customUI.xml的文本文件。
(3)打开该文本文件,并输入下面的代码:
<customUI xmlns=”http://schemas.microsoft.com/office/2006/01/customui“>
    <ribbon startFromScratch=”false”>
        <tabs>
            <tab id=”rxtabCustom”
                label=”My Very Own Tab”
                insertBeforeMso=”TabHome”>
                <group idMso=”GroupFont”>
                </group>
                <group idMso=”GroupZoom”>
                </group>
            </tab>
        </tabs>
    </ribbon>
</customUI>
(4)保存该文件。
步骤2 创建文件来使用定制的UI
(5)创建一个名为“Test”的文件夹。
(6)打开Excel 2007,创建一个新工作簿。
(7)在Test文件夹中以MyFirstUIModification.xlsx的文件名保存该工作簿,然后退出Excel。
步骤3 添加XML到文件中
(前面曾提及过,所有的OpenXML文件上是压缩容器,按照RibbonX代码读取的顺序放置在压缩容器内)
(8)右击MyFirstUIModification.xlsx文件并选择“重命名”,保存完整的文件名,但是在其后面添加.zip扩展名。当出现警告框时,选择“是”。
现在该文件改为了zip压缩文件,代替刚才标准的Office文档文件。
(9)双击该压缩文件而将其打开。
(10)拖动customUI文件夹并将其放置在压缩文件夹中。
(11)拖动压缩文件夹中的_rels文件夹到桌面,编辑.rels文件链接UI更改,指定该文件和customUI文件夹之间的联系。
(12)打开_rels文件夹并使用记事本编辑其.rels文件。在该文件末尾元素之前,插入新的联系语句。在输入语句时,应非常小心地使用标点符号、空格和大小写:
<Relationship
    Id=”customUIRelID”
    Type=”http://schemas.microsoft.com/office/2006/relationships/ui/extensibility
    Target=”customUI/customUI.xml”/>
(13)保存该.rels文件,关闭记事本。
(14)在压缩文件夹中,删除原来的_rels文件夹。
(15)将编辑过的_rels文件夹拖回到压缩文件夹中。
(16)关闭压缩文件夹。
(17)在压缩文件中单击右键并选择“重命名”,去掉名称后面的.zip扩展名,恢复为MyFirstUIModification.xlsx文件名。
(18)打开MyFirstUIModification.xlsx文件。
此时,如果出现错误消息,请重新检查.rels文件和customUI.xml文件,可能由于代码输入错误而导致错误。
如果一切正常,则在“开始”选项卡左侧会出现一个名为“My Very Own Tab”的新选项卡,包含内置的“字体”组和“显示比例”组,即一个内置组的副本,如下图所示。
UseNotepadCustomized
3、使用Microsoft Office 2007 Custom UI Editor修改UI
CustomUI Editor是一个用来编辑OpenXML文件的小型工具,更方便且实用。此外,还的供了一些验证和其他工具来减少开发量。并且在下列网站中可以免费得到:
http://openxmldeveloper.org/articles/customuieditor.aspx
步骤1 为Windows XP用户安装Microsoft .NET Framework 2.0
在继续之前,确保系统中已安装了Microsoft .NET Framework 2.0。可以通过“开始”─—“控制面板”─—“添加或删除程序”,在“添加或删除程序”对话框中检查是否有“Microsoft .NET Framework 2.0”项。
步骤2 安装Microsoft Office 2007 Custom UI Editor
下载后,双击图标即可安装Microsoft Office 2007 Custom UI Editor。然后打开Custom UI Editor,在该编辑器中打开MyFirstUIModification.xlsx文件,如下图所示。
CustomUIEditor
可以看到,该编辑器中的文件使用了颜色来区分不同的标记文本,并使用了缩排,版面清新自然。本书下面的示例开发将使用这个编辑器。有下列好处:颜色能帮助阅读和解释代码;也能容易地嵌入图片、验证代码、存储代码片断,甚至生成响应的回调的代码框架。(回调,即当单击自定义的Ribbon控件时触发的VBA程序。)
步骤3 使用CustomUI Editor来定制功能区
这里,将使用CustomUI Editor来定制Word功能区,使用与前面相同的代码,以展示CustomUI Editor和Notepad处理功能区时的不同。
(1)打开Word 2007,创建一个新的Word文档,并将该文档命名为MySecondModification.docx。然后,关闭该文档。
(2)打开CustomUI Editor,在该编辑器中打开MySecondModification.docx文档,然后输入前面在记事本中输入的代码。
(3)验证代码。单击编辑器工具栏右侧第二个按钮(Validate),此时如果有错误,将会指出存在的错误,如果没有错误,则出现如下图所示的对话框。
CustomUIEditor1
(4)保存并关闭CustomUI Editor。
(5)打开MySecondModification.docx文档,如下图所示,已在该Word文档中添加了新的选项卡。
CustomUIEditor2
注意,这里尽管在Excel和Word文件中使用了相同的XML,但组的选项略有不同,因为每个应用程序都有带有自已的命令的组,但这些组在多个应用程序之间共享通用的名称。
在CustomUI Editor中存储定制模板
步骤1 打开记事本,输入下面的代码:
<customUI xmlns=”http://schemas.microsoft.com/office/2006/01/customui“>
    <ribbon startFromScratch=”false”>
        <tabs>
            <!– Enter your first tab here –>
        </tabs>
    </ribbon>
</customUI>
步骤2 将该文本文件保存在Program Files\CustomUIEditor\Samples文件夹中,文件名为RibbonBase.xml。
(注意,Program Files\CustomUIEditor为Microsoft Office 2007 Custom UI Editor缺省的安装目录,如果安装在不同的路径下,只需更改为相应的路径即可)
步骤3 打开CustomUI Editor,选择菜单“Samples”,在列表中会看到“RibbonBase”条目,如图所示。单击该条目,将出现模板中的代码,能使用其开始新的Ribbon定制。
关于CustomUI Editor的使用
虽然使用CustomUI Editor能够很容易地编辑XML代码,但在使用前还是要对其进一步了解:
(1)CustomUI Editor不会检查XML标记的形式,因此应确保只使用在XML架构中定义的属性。然而,CustomUI Editor能核查在引号内提供的有效的属性。
(2)在编写和调试RibbonX代码时,不能够同时打开要定制的应用程序文件和CustomUI Editor。当试图在CustomUI Editor中保存在Office应用程序中打开的文件将导致错误。此外,即便关闭了正在编辑的Office应用程序文档然后将其在CustomUI Editor中保存,CustomUI Editor仍将覆盖在应用程序中编辑文档所作的任何变化。在其他的工具中作出变化之前关闭应用程序将是更安全的。
(3)CustomUI Editor没有查找/替换工具,因此,如果对XML作大量的编辑,可以先复制信息到另一个应用程序,编辑后再复制回来。
(4)当处理多行XML的文件时CustomUI Editor习惯刷新屏幕使光标总是在屏幕的最后一行。
4、XML Notepad
XML Notepad是另一个编辑或编写XML代码的工具,可从Microsoft的站点免费下载。
步骤1 安装XML Notepad
(1)下载并安装XML Notepad:
http://www.microsoft.com/downloads/details.aspx?familyid=72d6aa49-787d-4118-ba5f-4f30fe913628&displaylang=en
(2)下载并提取Office 2007 XML架构:
http://www.microsoft.com/downloads/details.aspx?familyid=15805380-F2C0-4B80-9AD1-2CB0C300AEF9&displaylang=en
(3)将架构链接到程序。
打开XML Notepad,选择菜单“View”─—“Schemas”,在“XML Schemas”屏幕中选择“File”─—“Add schemas”,然后导航到XML架构文件夹,即C:\2007 Office System Developer Resources\Office2007XMLSchema\CustomUI.xsd。此时,显示如下图所示,单击“OK”。
UseXMLNotepad
步骤2 使用XML Notepad
使用XML Notepad最困难的部分是将文件装载并开始,这并不像在CustomUI Editor中打开Excel或Word文件那样简单,甚至不能从中创建新文件。相反,需要打开一个现有的XML文件:
(1)与在记事本中一样,将文档重命名为zip文件,复制其中的CustomUI.xml文件进行处理。完成后,将更新的CustomUI.xml文件返回到zip容器,然后将文件改为原始的扩展名。
(2)创建一个空的文本文件,从CustomUI Editor中复制现有的XML,然后保存为XML文件,接着在XML Notepad中打开该文件。在这里编辑代码,然后返回该代码到保存文件的CustomUI Editor。
虽然XML Notepad的使用很繁,但它提供几个功能,可以容易地创建有效的文件而不会有输入错误的危险。例如:
(1)在CustomUI Editor中打开MyFirstUIModification.xlsx文件。
(2)复制代码后关闭CustomUI Editor。
(3)在桌面上右击,创建一个新的文本文件并命名为temp.xml。
(4)右击该文件并选择编辑(此时不要选择XML Notepad)。
(5)粘贴刚才复制的代码。
(6)保存该文本文件并关闭。
(7)再在该文件上右击,选择“Edit with XML Notepad”。
单击其中的扩展符号(+),得到如下图所示的屏幕。
UseXMLNotepad1
右击“tab”元素,选择“Element”,然后选择“Child”,将在最后一个组下创建一个新的元素,如下图所示。
UseXMLNotepad2
此时,将出现一个项目列表,可以从中选择,例如选择“group”元素。
接下来,在新添加的元素中右击,选择“Atrribute”,然后选择“Child”,将出现一个更长的项目列表,从中找到“idMso”后单击选中。此时,光标出现在右侧的屏幕中,与idMso一致,输入文本:GroupStyles。如下图所示。
UseXMLNotepad3
现在,已修改了代码,于是想试验新代码。此时,单击菜单“View”─—“Source”,当提示是否保存代码时,选择“Yes”。将出现如下图所示的屏幕,包含了新添加的标记。
UseXMLNotepad4
现在已经有了代码,那么继续进行下列操作:
(1)复制整段代码并关闭该窗口。
(2)在CustomUI Editor中打开MyFirstUIModification.xlsx文件。
(3)按Ctrl+A选择所有现有的代码。
(4)粘贴从XML Notepad程序中复制的代码。
(5)运行有效验证检查,然后保存并关闭文件。
最后,打开MyFirstUIModification.xlsx文件以检查“My Very Own Tab”选项卡的外观,
在Excel中:
UseXMLNotepad5
在Word中:
UseXMLNotepad6
XML Notepad的优点
XML Notepad提供了许多CustomUI Editor或标准的记事本没有的优点,包括:
(1)XML Notepad能够使得开发更容易,由于安装了相关的架构,有效的元素和属性能够从下拉列表中选择,也有类似于大多数Microsoft编码工具中的智能感知(IntelliSense)功能。
(2)XML Notepad有能力进行查找和替换样式搜索,这是其主要的优点。
(3)XML Notepad包含一种称之为“Nudge”的功能,将一块代码作为一个单元向上或各下移动。
(4)在XML Notepad中显示的步进布局使得容易识别嵌套的元素。
(5)因为XML Notedpad被链接到XML架构,能够实时进行有效性检查并报告所找到的错误。
XML Notepad的缺点
除了不能将文件放入编辑器或者从编辑器中获得文件外,还有下面的缺点:
(1)虽然能够从下拉列表中创建格式良好的XML,但XML Notepad实际上不会验证代码。因此应该先后使用XML Notepad和CustomUI Editor,使得代码得到完美的验证。
(2)CustomUI Editor能够生成回调标签,但XML Notepad不容易生成回调。
(3)CustomUI Editor能够使得创建自定义用户接口更容易。除了自动创建某些代码部分外,也提供了附加图片到文件中的容易的接口。但XML Notepad缺乏这项功能。
(4)如果使用XML Notepad创建customUI.xml文件来开始功能区修改,需要人工链接.rels文件。因此,建议使用CustomUI Editor创建初始的联接。仍然在XML Notepad中创建CustomUI代码的构造,然后将其复制到CustomUI Editor中,正如上面的示例所做的。


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

1条评论

  1. Baiyssy:

    请教一个问题:我在excel2007的快速访问工具栏上添加了一些常用按钮,请问怎么把这些按钮设置导出以便应用到另一台电脑上?方便的话,烦请给我邮件。谢谢!

    —————
    (excelperfect)在Excel 2007的另存为对话框中,有许多文件类型提供您选择,您可以将之保存为模板,如果有自定义宏的话,可保存为宏模板。
    或者您可以制作加载项。

发表评论