文档库 最新最全的文档下载
当前位置:文档库 › Ribbon自定义Office2007功能区

Ribbon自定义Office2007功能区

Ribbon自定义Office2007功能区
Ribbon自定义Office2007功能区

[分享

阅读笔记

功能区》

》阅读笔记

分享]]《RibbonX

RibbonX:

:自定义Office 2007功能区

最近,准备认真研究Excel 2007及其开发工具,因此就选定了这本书。该书的英文名为——《RibbonX :Customizing the Office 2007 Ribbon》,最近才出版,封面见下图:

初步的计划是:一周至少研读一章,并写下阅读笔记。

为督促自已学习,阅读笔记将在本贴中发表,与大家分享。希望大家监督,同时,如果有Excel 2007功能区和RibbonX的相关问题,也可以共同探讨。

欢迎您经常光临[Office图书品评]版块,热切希望您能将阅读Excel图书的宝贵经验在本版块中发表,与大家共享。

第一章 介绍Office用户界面

功能区(Ribbon)是什么并且为什么会存在

在设计Ribbon之前,Microsoft进行了大量的调查和研究,发现随着功能的增多,菜单和工具栏的形式使得查找命令更为困难,且很多命令不易发现。

新的UI解决了下面的问题:

1、缺乏上下文

2、难以达到所需要的命令

3、在后台定制

4、易破坏的工具栏

但同时也带来了一些问题:

1、占用较多的屏幕空间,当然,可以最小化

2、命令不可能按照所需要的顺序排列。有时,实现一项任务需要点击不同的选项卡,使用不同的组中的命令

3、定制UI需要编程或第三方的工具。

4、不能使用过去常用的表驱动的菜单

在2007版中打开以前版本中的自定义工具栏

这些工具栏将会出现在“加载项”选项卡中,并且会相应的添加到菜单命令组和工具栏命令组。

Ribbon组件

在使用XML编写自定义UI的代码之前,熟悉Ribbon组件和构成将有助于编写代码。

选项卡(Tab)将所有相关的任务集中在一起,组(Group)将相关的命令集中在一起,命令(Command)代码想要执行的操作,显示为不同的窗体,例如按钮、库、菜单、编辑框等。上述三个是Ribbon的基本组件。

此外,还有两个非基本的组件。快速访问工具栏(Quick Access Toolbar,QAT),其中可以添加命令按钮,接受共享控件(在所有文档中都可用)和文档控件(仅在本文档中可用)。Office菜单(也称作Office按钮),包含与文件操作相关的任务,例如打印、文件属性、保存等。

在XML中,这些元素在层级结构中相互联系,在其父元素中封装每个控件。

在功能区和快速访问工具栏中导航的技巧

1、以前版本的快捷键仍然有用。

2、Office 2007中引入了新的加速原理:keytips─—按下并释放Alt键,此时将在功能区界面中显示键名,然后按下相应的键。与原先的快捷键不同的是,keytips是先按下一个键然后按下另一个键。所有的快捷键都会显示在功能区中,无需您逐下记忆。

也可以按F10键,实现同样的功能。

3、可以使用鼠标滚轮,在功能区选项卡之间切换。

4、可以最小化功能区。

5、在快速访问工具栏中不仅可以添加常用的命令按钮,还可以添加库。

步骤1 单击“Office按钮”─—“Excel选项”。

步骤2 在“Excel选项”对话框的“自定义”选项卡中,在“从下列位置选择命令”下拉列表选择选项卡。步骤3 在下面的列表中选择库标签,即右侧带有箭头的标签,单击“添加”按钮。

步骤4 单击“确定”按钮。此时,在快速访问工具栏中出现添加的组。如下图所示。

当然,也可以添加组。注意,在“Excel选项”的列表中,右侧带有向右箭头的为库,带有向下箭头的为组,带有一个指向右侧的垂直条的为splitButton控件。

6、为快速访问工具栏按钮指定宏

步骤1 单击“Office按钮”─—“Excel选项”。

步骤2 在“Excel选项”的“自定义”选项卡中,从在“从下列位置选择命令”下拉列表选择。此时在下面的列表中将显示所有可用的宏。

步骤3 从“自定义快速访问工具栏”下拉列表框中选择所需选项。

步骤4 选择相应的宏并单击“添加”,然后单击“确定”按钮。

当然,可以单击“修改”按钮,可以修改图标,并且在显示名称文本框中输入的文本,将会在鼠标在该图标上方时出现。

7、快速访问工具栏可以在功能区的上方,也可以放置在功能区的下方。

自定义功能区的准备工作

开发功能区定制涉及到几个步骤。首先要处理主要的结构,涉及到XML。然后是相关的功能,涉及到VBA 代码或者其他的编程语言,例如C#。

一些基本的组件对大多数定制是通用的,因此只需创建一次,然后在将来的项目中使用。

1、默认情况下,功能区中的“开发工具”选项卡不可见,建议使之可见(在Excel选项对话框的常用选项卡中,选中“在功能区显示开发工具选项卡”前的复选框)。

2、需要一个能够调试UI XML的工具,以便于在装载时显示自定义UI错误。并且,在Excel选项对话框的“高级”选项卡中,选取“显示加载项用户接口错误”。

3、理解Office的安全性,即“信息中心”。

4、Office 2007 UI定制相对于以前的Office版本来说,可能会更困难一些。并且,因为在应用程序之间的不同,所以在某个应用程序上应用的XML代码,可能在其他应用程序中需要修改。

如果是Office的老用户,特别是定制过菜单和工具栏的用户,可能一开始比较难于接受新的UI,然而,一旦克服了变化的障碍,就会逐渐喜欢上新的UI。最大的挑战是新的UI包含的是XML代码,并且自定义UI可能需要很多的代码。因此,在编写XML之前,需要先规划。

而且,应特别注意XML区分大小写。此外,还需要创建并使用回调(callbacks)。

第二章 访问UI定制层

在开始自定义功能区之前,需要知道如何以及在哪里放置用来定制界面的代码。本章的内容:

1、新的Office 2007文件的结构。学习如何访问Ribbon定制层并存储必需的代码。

2、一些方便的工具,使用它们将更容易创建、编写程序和调试Ribbon定制。

3、关于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)打开该文本文件,并输入下面的代码:

label="My Very Own Tab"

insertBeforeMso="TabHome">

(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文件。在该文件末尾元素之前,插入新的联系语句。在输入语句时,应非常小心地使用标点符号、空格和大小写:

Id="customUIRelID"

Type="https://www.wendangku.net/doc/0c11868983.html,/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”的新选项卡,包含内置的“字体”组和“显示比例”组,即一个内置组的副本,如下图所示。

3、使用Microsoft Office 2007 Custom UI Editor修改UI

CustomUI Editor是一个用来编辑OpenXML文件的小型工具,更方便且实用。此外,还的供了一些验证和其他工具来减少开发量。并且在下列网站中可以免费得到:

https://www.wendangku.net/doc/0c11868983.html,/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文件,如下图所示。

可以看到,该编辑器中的文件使用了颜色来区分不同的标记文本,并使用了缩排,版面清新自然。本书下面的示例开发将使用这个编辑器。有下列好处:颜色能帮助阅读和解释代码;也能容易地嵌入图片、验证代码、存储代码片断,甚至生成响应的回调的代码框架。(回调,即当单击自定义的Ribbon控件时触发的VBA程序。)

步骤3 使用CustomUI Editor来定制功能区

这里,将使用CustomUI Editor来定制Word功能区,使用与前面相同的代码,以展示CustomUI Editor和Notepad处理功能区时的不同。

(1)打开Word 2007,创建一个新的Word文档,并将该文档命名为MySecondModification.docx。然后,关闭该文档。

(2)打开CustomUI Editor,在该编辑器中打开MySecondModification.docx文档,然后输入前面在记事本中输入的代码。

(3)验证代码。单击编辑器工具栏右侧第二个按钮(Validate),此时如果有错误,将会指出存在的错误,如果没有错误,则出现如下图所示的对话框。

(4)保存并关闭CustomUI Editor。

(5)打开MySecondModification.docx文档,如下图所示,已在该Word文档中添加了新的选项卡。

注意,这里尽管在Excel和Word文件中使用了相同的XML,但组的选项略有不同,因为每个应用程序都有带有自已的命令的组,但这些组在多个应用程序之间共享通用的名称。

在CustomUI Editor中存储定制模板

步骤1 打开记事本,输入下面的代码:

步骤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:

https://www.wendangku.net/doc/0c11868983.html,/downloads/details.aspx?familyid=72d6aa49-787d-4118-ba5f-4f30fe91362 8&displaylang=en

(2)下载并提取Office 2007 XML架构:

https://www.wendangku.net/doc/0c11868983.html,/downloads/details.aspx?familyid=15805380-F2C0-4B80-9AD1-2CB0C300AEF 9&displaylang=en

(3)将架构链接到程序。

打开XML Notepad,选择菜单“View”─—“Schemas”,在“XML Schemas”屏幕中选择“File”─—“Add schemas”,然后导航到XML架构文件夹,即C:\2007 Office System Developer

Resources\Office2007XMLSchema\CustomUI.xsd。此时,显示如下图所示,单击“OK”。

步骤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”。

单击其中的扩展符号(+),得到如下图所示的屏幕。

右击“tab”元素,选择“Element”,然后选择“Child”,将在最后一个组下创建一个新的元素,如下图所示。

此时,将出现一个项目列表,可以从中选择,例如选择“group”元素。

接下来,在新添加的元素中右击,选择“Atrribute”,然后选择“Child”,将出现一个更长的项目列表,从中找到“idMso”后单击选中。此时,光标出现在右侧的屏幕中,与idMso一致,输入文本:GroupStyles。如下图所示。

现在,已修改了代码,于是想试验新代码。此时,单击菜单“View”─—“Source”,当提示是否保存代码时,选择“Yes”。将出现如下图所示的屏幕,包含了新添加的标记。

现在已经有了代码,那么继续进行下列操作:

(1)复制整段代码并关闭该窗口。

(2)在CustomUI Editor中打开MyFirstUIModification.xlsx文件。

(3)按Ctrl+A选择所有现有的代码。

(4)粘贴从XML Notepad程序中复制的代码。

(5)运行有效验证检查,然后保存并关闭文件。

最后,打开MyFirstUIModification.xlsx文件以检查“My Very Own Tab”选项卡的外观,

在Excel中:

在Word中:

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中,正如上面的示例所做的。

二、Microsoft Access定制

与Word和Excel文件基于新的OpenXML文件标准不同,Microsoft Access仍然是二进制文件。而为定制在所有应用程序之间使用的基本的XML实际上是相同的,二进制文件结构表明Access Ribbon定制使用与Open XML文件(例如Excel或Word)完全不同的方法装载。

咋一看,通过表定制Access的UI似乎相当复杂,但当采用定制时Access实际上是相当灵活的。

在表中存储自定义UI信息来定制UI

当在Access中处理功能区定制时最合理的开始是在表中包含XML代码。

步骤1 使用表创建Access UI更改

(1)打开Access并创建一个新的数据库。

(2)在左侧的“表1”中单击右键,选择“设计视图”。

(3)当出现提示时,命名表名为USysRibbons。

(4)确保该表有下面三个字段:

ID(自动编号的字段,作为UI记录的索引值)

RibbonName(一个文本类型的字段)

RibbonXml(一个备注类型的字段)

(5)关闭该表,当出现提示时保存。

(技巧:以前缀“USys”命名表,例如本例中的USysRibbons,确保该表将在导航窗格中隐藏,除非在“导航选项”对话框中选中了“显示系统对象”。)

(6)打开USysRibbons表并在其中添加一条新记录。在RibbonName字段中输入一个有意义的名称(如本例中的MainRibbonUI),在RibbonXml字段中,粘贴下面的XML代码:

label="My Very Own Tab"

insertBeforeMso="TabHomeAccess">

此时,表类似下图:

(7)保存该表,然后关闭并重新打开数据为文件。重新打开后,在“Access选项”中,选择“当前数据库”选项,在“功能区和工具栏选项”中,在“功能区名称”下拉列表中将找到一个选项选择自定义功能区UI,如本例中的MainRibbonUI,如下图所示。

(8)单击“确定”后,将出现必需关闭该文件才能使更改生效的提示,单击“是”。重新打开数据库文件后,自定义UI应该已装载,如下图。

可以看出,上述方式必须经过许多步骤且要关闭并重新打开文件几次后,才能显示最后定制的功能区。

如果需要测试许多不同的UI并在它们之间切换,一种更好的方式是使用VBA来执行。虽然要花费时间编写VBA代码,但一旦编写好代码后,就能够重复使用这些代码。(本书的后面将讨论这个问题)

Access UsysRibbons警告

主要是备注的字符数量限制。

Access UI定制的其他技术

(1)在表中存储XML(前面已看到过)

(2)从外部文件中读取XML

(3)在另一个Access数据库中存储XML

(4)链接到包含XML的Excel工作表

此外,如果遇到字符限制问题并确定要在USysRibbons表中存储XML代码,也可以使用VBA。

第三章 理解XML

这里的学习内容包括如何创建访问和操纵内置功能区所需的核心XML框架。

什么是XML,为什么需要XML

XML是Extensible Markup Language的缩写,最初由W3C发布。XML不是编程语言,它缺乏执行操作的任何机制。XML是一组规则,其意图是简化跨平台的数据共享。

Office 2007文件以Microsoft的OpenXML格式配置,是包含几个XML文件的一个简单的压缩容器。 (1)XML节省空间。

(2)结构化数据后,能够快速地被索引,因而能使其他程序为特定的字符串或其他项目搜索索引。

(3)对于开发者来说,能够链接某个应用程序里的XML架构来验证XML而确保像意料中的那样工作。例如前一章中介绍的CustomUI Editor和XML Notepad,如果没有这些架构,CustomUI Editor将不能验证代码,XML Notepad不能提供智能感知功能。

现在我们关心XML,是因为XML是Ribbon的核心。要定制Office 2007用户界面,必须编写XML代码,虽然VBA在定制中也能起到关键的作用,但它不是必需的。而XML在定制中几乎总是必需的,但也有例外。例如弹出式菜单和一些出现在加载项选项卡中的VBA定制。

本章下面的内容将集中介绍如何从头开始创建XML框架,引导您通过必需的XML创建和修改功能区。

基本的背景知识

即,XML的构成及如何编写XML。

1、标签(Tags)

例如,下面的代码片断:

相关文档
相关文档 最新文档