首页 > 单独文章 > 正文

自定义Office2007用户界面的快速访问工具栏(QAT)

时间:2008-04-23 09:40:34 作者:officeba 【认证】

在Office2007 Fluent用户界面中执行不同的操作,例如自定义快速访问工具栏,仅需要几行XML和编程代码。
概述
Office2007 Fluent用户界面(UI) 使用更简单的系统代替了当前系统的层级菜单、工具栏和任务窗格,使得操作更有效率。Office Fluent Ribbon、快捷菜单、快速访问工具栏和Offce复选框是Office Fluent UI的所有组成部分。有很多自定义和内置的控件可以添加到Office Fluent Ribbon中,例如按钮、复选框和组合框。
通过使用XML标记元素,添加组件到Office Fluent Ribbon中,并且通过属性来设置那些组件中的属性。通过使用任何Microsoft Visual Studio 2005支持的编程语言,例如Visual Basic和Visual C#、以及VBA、Visual C++、Visual Basic 6.0来赋予这些组件的功能。
编写代码
可以使用XML和编程代码的组合来添加自已的自定义控件到Office Fluent Ribbon或执行其它在Office Fluent用户界面中的操作。
使用XML添加控件
XML提供了Office Fluent用户界面层级的、公开的模型。通过使用XML元素指定组件的类型,可以添加控件(例如按钮)到Ribbon或QAT。例如,可以使用button元素添加一个按钮,通过使用属性例如label属性给控件赋属性值。下面是用于自定义Office Fluent UI的XML的示例。
<customUI xmlns=”http://schemas.microsoft.com/office/2006/01/customui“>
  <ribbon startFromScratch=”true”>
    <qat>
      <sharedControls>
        <button idMso=”Copy” />
        <button idMso=”Paste” />
      </sharedControls>
    </qat>
  </ribbon>
</customUI>
该示例首先设置ribbon元素的startFromScratch属性为true,设置该属性使Office Fluent Ribbon在“start from scratch”模式下,隐藏了所有内置选项卡。接着,通过添加qat元素到代码中,创建对QAT的引用。然后,添加sharedControls元素封装QAT中任何自定义控件。最后,添加两个按钮,一个是内置的复制功能,一个是内置的粘贴功能。
通过使用idMso属性,可以告诉控件引用内置于Microsoft Office里的功能,包括Mso后缀的属性名称总是指向包含在Microsoft Office里的功能和资源。相反,使用id属性代表自定义控件。
有两种方式来自定义Office Fluent UI:
  修改通过支持Office Fluent UI的Office应用程序所创建的Office Open XML格式文件。
  使用加载项。
可以根据需要定制用户界面的作用来选择技术。例如,修改基于Office Open XML格式文件导致文档级的定制,所定制的Office Fluent Ribbon与特定的文档相关,而不是整个应用程序。而通过使用加载项,获取应用程序级的定制,这意味着定制的Ribbon将应用到整个应用程序中,而不管哪个文档打开。
使用Office Open XML格式文件创建定制的Ribbon
1、通过改变文件的扩展名,使之成为一个压缩文件(.zip),然后打开该文件。
2、添加一个包含XML定制代码的文件夹。
3、修改该文档相联系的文件来指向自定义文件夹。
4、改变该文档的扩展名。
5、在Office应用程序里打开该文档。
6、添加代码到文档中,提供自定义用户界面的功能。
使用加载项定制用户界面也简单。在创建加载项工程后,实现IRibbonExtensibility接口,包括Microsoft.Office.Core命名空间。该接口包含一个名为GetCustomUI方法,使用该方法返回XML定制代码。然后添加编程过程,提供自定义用户界面的功能。
自定义QAT
在下面的过程中,在Excel 2007中通过添加提供内置复制功能的按钮和内置粘贴功能的按钮来自定义QAT。
创建加载项解决方案
详见接下来的步骤。
创建添加自定义按钮到Ribbon中的加载项解决方案
1、开启Visual Studio 2005。
2、在“文件”菜单中,单击“新建项目”。
3、在“新建项目”对话框中,在“项目类型”窗格中,展开“其它项目类型”,单击“扩展性”,然后选择“共享的外接程序”。
4、在名称框中,输入RibbonDemo,然后单击“确定”创建项目。
5、在“共享外接程序向导”的第一页,选择“下一步”。
6、在“选择编程语言”页,选择Visual C#或Visual Basic,然后单击“下一步”。
7、在“选择应用程序主机”页,清除除Microsoft Excel外的所有选择,然后单击“下一步”。
8、在“输入名称和说明”页,输入项目的名称和说明,然后单击“下一步”。
9、在“选择外接程序选项”页,选择“我希望在加载宿主应用程序的同时加载我的外接程序”,然后单击“下一步”,然后单击“完成”。
Visual Studio创建了一个包含两个项目的解决方案——加载项本身和一个安装项。安装项可使得加载项能安装在其他用户的计算机中。这也使得您在设计时更容易安装和卸载加载项。
添加对项目的引用
要与Microsoft Office Excel 2007和Office Fluent Ribbon对象模型相交互,添加对Microsoft Office Core类型库的引用。
1、在解决方案管理器中,展开“引用”文件夹。
如果没有看到引用文件夹,则在“项目”菜单中单击“显示所有文件”。
2、删除Microsoft.Office.Core引用。
3、右键单击“引用”文件夹,然后单击“添加引用”。
4、单击“COM”选项卡,选择Microsoft Office 12.0 Object Library以及Microsoft Excel 12.0 Object Library,然后单击“确定”按钮。
5、在打开的代码文件顶部,添加下面的语句。
Imports Microsoft.Office.Core
Imports Excel = Microsoft.Office.Interop.Excel
创建定制的XML文件
创建定制的XML文件,添加组件。
1、在“项目”菜单中,单击“添加新项”。
2、在“添加新项”对话框中,选择XML文件,命名为Ribbon.xml,然后单击“添加”。
3、在XML文件中,添加上面给出的XML标记。
添加XML文件作为嵌入的资源
1、在解决方案管理器中,选择Ribbon.xml。
2、在属性窗口,选择“生成操作”属性,然后在选项列表中选择“嵌入的资源”。
3、在“项目”菜单中,单击“RibbonDemo属性”。
4、单击“资源”选项卡。
5、在解决方案管理器中,拖动Ribbon.xml到“资源”设计面板中。
这个操作创建了一个基于文件的资源。现在,Ribbon.xml文件自动存储为一个应用程序资源,可以通过使用Visual Basic或Visual C#语言来获取其内容。
6、关闭“资源”窗口。当出现提示时,单击“是”保存该资源。
访问宿主应用程序并处理用户界面
接下来,创建一个Excel实例,并添加对Ribbon扩展界面的引用。
1、在解决方案管理器中,右键单击“Connect.cs”或“Connect.vb”,然后单击“查看代码”。
2、找到已存在的applicationObject变量的声明,对其进行修改,指向一个Excel.Application对象,如下所示。
Private applicationObject As Excel.Application
3、修改OnConnection方法中已存在的第一行,创建Excel.Application对象的一个实例。
applicationObject = DirectCast(application, Excel.Application)
4、在Visual Basic中,修改代码行,在以Implements开始的类的顶部,添加实现IRibbonExtensibility命名空间的支持。Visual Basic自动插入GetCustomUI过程。
Implements Extensibility.IDTExtensibility2, IRibbonExtensibility
5、如果没有自动插入GetCustomUI过程,则手动插入该过程,其代码如下。
Public Function GetCustomUI(ByVal RibbonID As String) As String _
   Implements Microsoft.Office.Core.IRibbonExtensibility.GetCustomUI
   Return My.Resources.Ribbon
End Function
测试该项目
1、在“文件”菜单中,单击“全部保存”。
2、如果Excel 2007正运行,则退出。
3、在“生成”菜单中,单击“生成解决方案”。
4、在解决方案管理器中,右键单击“RibbonDemoSetup”,然后单击“生成”。
5、右键单击“RibbonDemoSetup”,然后单击“安装”。
出现RibbonDemo安装向导。
6、单击每一页中的“下一步”按钮,然后单击最后一页中的“关闭”按钮。
7、开启Excel 2007。
注意,因为设置startFromScratch属性为true,因此在Ribbon中没有选项卡(见图1)。同时,注意到显示的用户界面的“Office按钮”,且快速访问工具栏上包含有两个按钮。

在Ribbon中没有显示任何选项卡

图1:在Ribbon中没有显示任何选项卡
8、现在,在A1中输入一些文本,然后单击快速工具栏中的复制按钮。
9、接着,选择A3,单击快速访问工具栏中的粘贴按钮,则文本被粘贴到A3中,如图2所示。

从A1中复制文本并粘贴到A3中

图2:从A1中复制文本并粘贴到A3中
10、退出Excel。
11、在Visual Studio的解决方案管理器中,右键单击“RibbonDemoSetup”,然后单击“卸载”。

 


相关文章

同类最新