自定义适用于开发人员的 office.docx
- 文档编号:27300930
- 上传时间:2023-06-28
- 格式:DOCX
- 页数:17
- 大小:147.71KB
自定义适用于开发人员的 office.docx
《自定义适用于开发人员的 office.docx》由会员分享,可在线阅读,更多相关《自定义适用于开发人员的 office.docx(17页珍藏版)》请在冰豆网上搜索。
自定义适用于开发人员的office
自定义适用于开发人员的office(2007)功能区用户界面
适用于:
•
2007MicrosoftOffice套件
•
MicrosoftOfficeAccess2007
•
MicrosoftOfficeExcel2007
•
MicrosoftOfficePowerPoint2007
•
MicrosoftOfficeOutlook2007
•
MicrosoftOfficeWord2007
摘要:
了解在2007MicrosoftOffice版本中自定义功能区用户界面(UI)时可使用的应用场景和XML标记。
在2007版本中,功能区UI替代了菜单、工具栏和大多数任务窗格UI。
改进的用户界面
2007MicrosoftOffice系统中的许多应用程序都面貌一新。
功能区用户界面(UI)功能以进行了效率和可发现能力优化的、更简单的界面系统替代了采用分层菜单、工具栏和任务窗格的现有系统。
新的UI改进了上下文菜单、屏幕提示、小型工具栏和键盘快捷键,这提高了用户效率和生产力。
注意2007MicrosoftOffice版本中实现了功能区UI功能,该版本包括MicrosoftOfficeAccess2007、MicrosoftOfficeExcel2007、MicrosoftOfficePowerPoint2007、MicrosoftOfficeWord2007和MicrosoftOfficeOutlook2007。
MicrosoftOfficeOutlook2007中还在下列情况下实现了该功能:
用户创建或编辑电子邮件消息;或使用联系人并位于“日历”中。
可通过组合使用XML标记和MicrosoftVisualStudio中支持的任何基于Microsoft.NET的语言来自定义功能区UI。
还可以使用MicrosoftVisualBasicApplications(VBA)、MicrosoftVisualC++和MicrosoftVisualBasic6.0自定义功能区UI。
本文提供有关新用户界面的详细论述,并提供功能区UI的代码示例和自定义应用场景。
•
有关功能区控件和属性列表的详细参考信息,请参阅CustomizingtheOffice(2007)RibbonUserInterfaceforDevelopers(Part2of2)(英文)。
•
要了解MicrosoftOffice应用程序2007版本用户界面(UI)系统的开发人员概述及UI重新设计背后的目标,以及了解重新设计的UI对自定义解决方案和加载项的影响,请参阅DeveloperOverviewoftheUserInterfaceforthe2007MicrosoftOfficeSystem(英文)。
•
有关这些功能的详细信息,请参阅2007MicrosoftOfficeSystemBeta2附带的RibbonUI自述文件。
返回页首
增强用户体验的新方法
应用程序开发人员已利用Office先前版本中的工具和编程结构通过创造性的方法来扩展UI。
例如,开发人员可通过CommandBars对象模型在他们的自定义Office应用程序中构建丰富的解决方案。
2007Office版本延续了这一传统,它引入了一种创新的模型,开发人员可以使用它来增强用户体验。
可使用可扩展标记语言(XML)和若干种传统编程语言之一来操纵组成功能区UI的组件。
由于XML是纯文本形式,因此可在任何文本编辑器中创建自定义文件,这简化了对UI的操作。
而且,只需进行最基本的调整便可重复使用自定义功能区UI文件,因为每个应用程序都使用相同的编程模型。
例如,可重复使用在Word2007、Excel2007、Access2007或PowerPoint2007中创建的自定义功能区UI文件。
图1.2007Office版本应用程序中的功能区UI
使用XML标记文件自定义UI大大减少了对基于CommandBars对象模型的复杂加载项的需要。
不过,在先前版本的Office中编写的加载项在进行微小修改后或不做任何修改,即可在功能区UI中继续使用。
本文稍后有对加载项的论述。
返回页首
为大多数Office应用程序自定义功能区UI
可按下列方法在Word2007、Excel2007或PowerPoint2007中创建自定义应用程序级别功能区UI:
•
在托管代码或非托管代码中使用COM加载项
•
使用应用程序特定的加载项,如.ppam文件和.xlam文件
•
使用Word2007中的模板(.dotm文件)
在一个典型的应用场景中,COM加载项中的代码包含从外部自定义文件或代码自身包含的XML返回XML标记的过程。
应用程序启动时,将加载加载项并执行返回XML标记的代码。
代码将根据某种XSD架构验证XML标记,然后将其加载到内存中并应用给功能区UI。
随后将出现修改过的功能区UI。
功能区UI命令和控件还使用回调过程来执行加载项中的代码。
文档级别自定义使用相同的XML标记和具有下列扩展名之一的OpenXML格式文件:
.docx、.docm、.xlsx、.xlsm、.pptx或.pptm。
在此应用场景中,将创建一个包含XML标记的自定义文件并将其保存到某个文件夹。
然后修改OpenXML格式容器中的部分,使其指向自定义文件。
在Office应用程序中打开文档时,自定义文件将加载到内存中并应用给功能区UI。
然后命令和控件将调用文档中包含的代码来提供其功能。
返回页首
现有解决方案是怎样的?
在先前版本的Office中,开发人员使用CommandBars对象模型来构建修改UI的VisualBasic代码。
在2007版本中,在大多数情况下,这些旧代码不做修改便可继续使用。
不过,在MicrosoftOffice2003中对工具栏所做的更改现在会出现在一个“加载项”选项卡上。
所显示的自定义类型取决于加载项的原始设计。
例如,Office将创建一个“菜单命令”组,其中包含添加到先前菜单结构(“文件”菜单、“插入”菜单、“工具”菜单等)中的项目。
它还将创建一个“工具栏命令”组,其中包含添加到先前内置工具栏(“标准”工具栏、“格式”工具栏、“图片”工具栏等)中的项目。
此外,加载项文档添加的自定义工具栏将出现在“加载项”选项卡的“自定义工具栏”组中。
返回页首
使用回调
在开始详细介绍功能区UI自定义之前,我们先来了解一下回调的使用。
就功能区扩展性而言,可指定回调以在运行时通过UI更新属性和执行操作。
例如,假定某个按钮对应onAction回调函数。
功能区标记将如下所示:
该标记指示在该按钮被单击时MicrosoftOffice调用MyButtonOnAction函数。
MyButtonOnAction函数的签名视所选语言而定;以下为C中的一个示例:
publicvoidMyButtonOnAction(IRibbonControlcontrol){if(control.Id=="myButton"){System.Windows.Forms.MessageBox.Show("按钮被单击!
");}}
只要签名与下表中的签名相符,函数MyButtonOnAction就可以拥有任何名称:
CustomizingtheOffice(2007)RibbonUserInterfaceforDevelopers(Part2of2):
Table12.ListofallCandVBAcallbacksandsignatures(英文)
CustomizingtheOffice(2007)RibbonUserInterfaceforDevelopers(Part2of2):
Table13.ListofallC++andVisualBasic.NETcallbacksandsignatures(英文)
必须将其声明为public。
可通过control参数为许多不同的控件使用相同的回调函数。
注意XML自定义标记中的所有属性均使用小写首字母表示法,即大写除第一个词外每个词的第一个字符。
例如,onAction和insertBefore。
返回页首
自定义功能区UI的两种方法
Office的2007版本(Access2007属于例外,本文后面有对它的介绍)提供了两种使用XML标记自定义功能区UI的方法:
使用包含XML标记的有效OpenXML格式文件或使用包含XML标记的COM加载项。
在该XML标记中指定的任何更改均表现为现有功能区UI的附加项。
例如,如果添加代表一个自定义选项卡的XML标记,将会添加一个选项卡。
注意功能区中有多个可设置各种属性的特性。
有关属性列表,请参阅表14.功能区属性列表。
功能区标记中的所有控件都必须具有下列标识符之一。
表1.所有控件都必须与下列标识符之一联用
标识符
说明
ID
与自定义控件联用。
该标识符作为IRibbonControl上的一个属性传递给回调函数。
idMso
与内置控件联用。
idQ
与合格控件联用。
例如:
x="myNameSpace"> myButton".../> 注意通过创建一个名称空间x,可将两种不同的加载项添加到同一自定义组(它们只是需要通过该自定义组的限定名称对其进行引用)。 使用OpenXML格式文件自定义功能区UI 在文档级别,使用XML标记自定义功能区UI的过程包括下列步骤。 有关详细信息,请参阅本文后面的在功能区UI中添加基于文档的加载项。 使用OpenXML格式文件自定义功能区UI 1. 通过添加在功能区UI中添加新组件、修改现有组件或隐藏组件的XML标记,可在任意文本编辑器中创建自定义文件。 将该文件保存为customUI.xml。 2. 在桌面上创建名为customUI的文件夹,然后将自定义文件复制到该文件夹。 3. 使用自定义UI架构验证XML标记。 注意该步骤是可选步骤。 4. 在Office应用程序中创建一个文档,然后将其保存为具有下列扩展名之一的OpenXML格式文件: .docx、.docm、.xlsx、.xlsm、.pptm或.pptx。 包含宏的文件具有后缀m。 这些文件还包括由功能区命令和控件调用的过程。 5. 为文档的文件名添加.zip扩展名,然后打开文件。 6. 通过将文件夹从桌面拖动到该ZIP文件中,将该自定义文件添加到容器。 7. 将.rels文件从Zip文件提取到桌面上。 一个包含.rels文件的_rels文件夹即复制到桌面上。 8. 打开位于_rels文件夹中的.rels文件,添加用于在文档文件和自定义文件之间创建关系的一行代码,然后保存文件。 9. 将_rels文件夹添加回容器,从而覆盖现有文件。 10. 通过删除.zip扩展名,将文件重命名为其原始文件名。 之后,在Office应用程序中打开文件时,所显示的功能区UI将具有自定义内容。 使用COM加载项自定义功能区UI 如果在应用程序级别进行自定义,无论打开哪一个文档,所产生的修改过的功能区UI都会出现在应用程序中。 首先,需要创建COM加载项来进行这些修改。 使用COM加载项自定义功能区UI 1. 创建一个COM加载项项目。 所创建的加载项必须实现Extensibility.IDTExtensibility2接口(所有COM加载项都须如此),还必须实现附加IRibbonExtensibility接口(位于Microsoft.Office.Core名称空间中)。 2. 构建加载项并设置项目,然后安装项目。 3. 启动MicrosoftOffice应用程序。 加载项加载后,将触发IDTExtensibility2: : OnConnection事件,与在先前版本的Office中一样,该事件会将加载项初始化。 4. 接下来将调用QueryInterface方法,它确定是否实现了IRibbonExtensibility接口。 5. 如果已实现,将调用IRibbonExtensibility: : GetCustomUI方法,该方法加载XML标记(从XML自定义文件或从过程中内嵌的XML标记),然后将自定义功能区UI加载到应用程序中。 6. 最后,用户将可以开始使用自定义功能区UI。 XML标记中指定的每个控件均通过调用回调过程来公开其功能。 例如,一个按钮控件的XML标记可以指定一个onAction属性,当用户单击该按钮时,该属性指向的过程将开始执行。 在大多数情况下,回调过程都会公开一个标识该控件的IRibbonControl接口。 也可以传递其他参数。 例如,可以传递一个Boolean对象,它指定一个切换按钮的按下或未按下状态。 IRibbonControl接口实现了三个属性: Context对象、Id对象和tag属性。 Context对象是包含触发回调的功能区的活动窗口。 Id对象是标记中指定的自定义控件的String标识符。 tag属性是一个不唯一属性,可选择是否在标记中指定该属性。 返回页首 XML标记文件的一般格式 可以使用XML标记自定义功能区UI。 以下示例显示的是一个在Word2007中自定义功能区UI的XML标记文件的一般格式。 该XML标记会产生修改过的功能区UI,如下图所示: 图2.在Word中自定义功能区UI的示例 该示例对Word2007中的功能区UI进行了下列更改,更改按所示顺序进行: • 首先,示例声明默认名称空间和一个自定义名称空间。 • 接着,示例隐藏位于内置“主页”选项卡中的内置“GroupFont”组。 • 随后,示例将一个新的“CustomTab”选项卡添加到最后一个内置选项卡的右侧。 注意使用id=标识符属性来创建一个自定义项目,如一个自定义选项卡。 使用idMso=标识符属性来引用内置项目,如“TabHome”选项卡。 • 示例将一个新的“SampleGroup”组添加到“我的选项卡”。 • 示例将一个大尺寸的“ToogleButton1”按钮添加到“我的组”。 还将指定一个onAction回调和一个GetPressed回调。 • 示例将一个带有自定义屏幕提示的“CheckBox1”复选框添加到“我的组”。 还将指定一个onAction回调。 • 示例将一个“EditBox1”编辑框添加到“我的组”。 还将指定一个onChange回调。 • 示例将一个包含三个项目的“Combo1”组合框添加到“我的组”。 该组合框指定一个onChange回调,它使用每个项目中的文本。 • 示例将一个设置了onAction回调的“Launcher1”启动器添加到“我的组”。 启动器也可以显示一个自定义对话框来为用户提供更多选项。 • 示例将一个新的“MyGroup”组添加到自定义选项卡中。 • 示例将一个大尺寸的“Button1”按钮添加到“MyGroup”组。 还将指定一个onAction回调。 • 最后,示例将一个正常尺寸的“Button1”按钮添加到“MyGroup”组中。 还将指定一个onAction回调。 如您所见,修改功能区UI是件容易的工作。 返回页首 Access2007中的UI自定义 Access2007中的功能区自定义与其他Office应用程序共享某些相同的选项,但存在一些重要的区别。 正如其他Office2007应用程序一样,使用XML标记来自定义Access功能区UI。 也可以使用包含XML标记或COM加载项的外部文件将功能区自定义集成到应用程序中,这也与其他应用程序类似。 不过,与其他Office应用程序不同的是,因为Access数据库文件是二进制文件,不能作为OfficeOpenXML格式文件打开,所以无法通过在数据库文件中添加部分来自定义Access功能区。 Access在自定义功能区UI方面确实提供了极大的灵活性。 例如,可将自定义标记存储在表中、将其嵌入某个VBA过程、将其存储在另一Access数据库中或将其链接到某个Excel工作表。 还可以为整个应用程序或特定窗体和报告指定自定义UI。 为让您了解自定义AccessUI的过程有多么轻松,让我们通过几个应用场景进行预演。 注意因为在进行这些预演的过程中要对数据库进行更改,所以您可能不希望在自己的数据库中执行这些步骤,而是希望在其他数据库(例如,Access自带的Northwind示例数据库)中执行。 自定义Access功能区UI 所有AccessUI自定义都有一个共同点: 只有通过调用唯一的功能区特定的AccessVBA对象成员(LoadCustomUI方法),它们所代表的功能区才能供应用程序使用。 该方法的签名为: expression.LoadCustomUI(CustomUINameAsString,CustomUIXMLAsString) 其中expression返回一个Application对象 CustomUIName是将与此标记关联的自定义功能区ID的名称 CustomUIXML包含XML自定义标记。 通常,要创建功能区并使其可供应用程序使用,首先需要在数据库中创建一个模块,其中包含调用LoadCustomUI方法的过程,从而传入功能区的名称和XML自定义标记。 如前所述,XML标记可来自通过表创建的Recordset对象、来自数据库之外的来源(如必须解析为String的XML文件)或来自直接嵌入过程内部的XML标记。 只要每个功能区的名称和组成功能区的选项卡的id属性是唯一的,就可通过对LoadCustomUI方法进行多次调用,传入不同的XML标记来使不同的功能区可用。 过程完成后,接着创建一个通过使用RunCode操作调用该过程的AutoExec宏。 这样一来,应用程序启动时将自动执行LoadCustomUI方法,所有自定义功能区都可供应用程序使用。 在应用程序启动时应用自定义功能区 要实现自定义UI以便其在应用程序启动时可用,请执行下列操作: 1. 按之前所述过程操作,使自定义功能区可供应用程序使用。 2. 关闭应用程序,然后将其重新启动。 3. 单击“MicrosoftOffice按钮”(“文件”菜单),然后单击“Access选项”按钮。 4. 单击左侧窗格中的“启动”选项,然后在“应用程序选项”部分中单击“自定义功能区ID”并选择列表中的其中一个功能区。 5. 现在,请关闭应用程序,然后将其重新启动。 将显示所选UI。 为窗体或报告指派自定义功能区 1. 按之前所述过程操作,使自定义功能区可供应用程序使用。 2. 在“设计”视图中打开窗体或报告。 3. 在“设计”选项卡上,单击“属性页”按钮。 4. 在“属性”窗口的“全部”选项卡上,单击“自定义功能区ID”下拉列表,然后选择列表中的其中一个功能区。 5. 保存、关闭窗体或报告,然后将其重新打开。 将显示所选UI。 注意显示在功能区UI中的选项卡是附加选项卡。 也就是说,除非专门隐藏选项卡或将startFromScratch属性设置为True,否则由窗体或报告的功能区UI显示的选项卡将是在现有选项卡基础上增加的选项卡。 为进一步说明此过程,我们来完成几个示例。 返回页首 创建Access应用程序级别自定义功能区 下列步骤演示为数据库创建和实现自定义功能区的过程。 开始之前,需要设置一个选项来报告执行代码时可能发生的任何错误: 1. 单击“Microsof
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自定义适用于开发人员的 office 自定义 适用于 开发人员
![提示](https://static.bdocx.com/images/bang_tan.gif)