ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2008-4-6 19:54 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

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


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

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

欢迎您经常光临[Office图书品评]版块,热切希望您能将阅读Excel图书的宝贵经验在本版块中发表,与大家共享。
[此贴子已经被作者于2008-4-6 19:57:48编辑过]

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记

评分

1

查看全部评分

TA的精华主题

TA的得分主题

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

<相关链接贴>

第1章 Office用户界面介绍——在第3楼

第2章 访问UI定制层——在第4楼到第12楼

第3章 理解XML——在第14楼至第24楼

第4章 VBA基础——在第25楼至第35楼

第5章 回调:对自定义UI添加功能的关键——在第36楼至第44楼

[此贴子已经被作者于2008-4-19 15:04:07编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-4-6 20:02 | 显示全部楼层

第一章 介绍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)。

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-4-10 18:04 | 显示全部楼层

第二章 访问UI定制层

在开始自定义功能区之前,需要知道如何以及在哪里放置用来定制界面的代码。本章的内容:
1、新的Office 2007文件的结构。学习如何访问Ribbon定制层并存储必需的代码。
2、一些方便的工具,使用它们将更容易创建、编写程序和调试Ribbon定制。
3、关于Word和Excel功能区定制、Access功能区定制的示例。

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-4-10 18:05 | 显示全部楼层
一、访问Excel和Word功能区定制层
1、新的Excel和Word文件
Office 2003及以前的版本使用二进制文件存储文档,而Office 2007中采用了OpenXML文件格式作为新的标准,新的文件实际上被包含在被压缩的XML格式中。
(1)使用记事本非常容易地开启并修改潜在的XML文件。
(2)在不同的应用程序中使用相似的数据结构来获得相似的结果。从Excel到Word,甚至PowerPoint,定制新的Office 2007用户界面遵循相同的方法。
(3)通常,存储在新文件格式中的的文件被压缩,因而比旧的二进制文档占用更少的空间。

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-4-10 18:07 | 显示全部楼层
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>元素之前,插入新的联系语句。在输入语句时,应非常小心地使用标点符号、空格和大小写:
<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”的新选项卡,包含内置的“字体”组和“显示比例”组,即一个内置组的副本,如下图所示。

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-4-10 18:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
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文件,如下图所示。
 
可以看到,该编辑器中的文件使用了颜色来区分不同的标记文本,并使用了缩排,版面清新自然。本书下面的示例开发将使用这个编辑器。有下列好处:颜色能帮助阅读和解释代码;也能容易地嵌入图片、验证代码、存储代码片断,甚至生成响应的回调的代码框架。(回调,即当单击自定义的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 打开记事本,输入下面的代码:
<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定制。

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-4-10 18:11 | 显示全部楼层
关于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习惯刷新屏幕使光标总是在屏幕的最后一行。

TA的精华主题

TA的得分主题

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

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

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-4-10 18:19 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
虽然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中:

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记

[分享]《RibbonX:自定义Office 2007功能区》阅读笔记
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-22 04:13 , Processed in 0.049359 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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