首页 > 单独文章 > 正文

Office2007 用户界面(UI)的定制(三)

时间:2008-04-12 09:02:06 作者:officeba 【认证】

添加基于文档的加载项到Fluent UI
下面的步骤概述了在Excel 2007中创建包含简单的自定义UI文档的基本过程,该自定义UI可以调用自定义宏:
1、创建一个启用宏的Excel工作簿,该工作簿中包含一个宏。
2、创建一个自定义Fluent UI的文件,该文件将在Ribbon中添加一个选项卡、一个组和一个按钮。
3、创建一个Fluent UI调用的VBA过程,来响应单击按钮的操作。
4、在按钮的标记里指定onAction回调属性,以便于调用在文档中创建的宏。
5、修改启用宏文档容器的内容,以便包含自定义Fluent UI的文件。
6、保存启用宏的文件,然后在Excel 2007中打开。
注:在创建启用宏的Word或PowerPoint文档时,可以按照相同的步骤。
(一) 创建一个启用宏的Excel工作簿
1、开启Excel 2007。
2、单击“开发工具”选项卡,然后单击“Visual Basic”。
注:如果在Ribbon中没有看到“开发工具”选项卡,必须自已调出该选项卡。可以单击“Office按钮”,然后单击“Excel选项”,单击“常用”,然后选择“在功能区显示开发工具选项卡”。这是一个全局设置,在某应用程序中进行该设置后,将在所有的Office应用程序中起作用。
3、在VBE中,双击ThisWorkbook打开代码窗口。
4、输入下面的VBA函数,然后单击工具栏左侧的Excel图标来返回Excel。
Sub MyMacro(ByVal control As IRibbonControl)
    MsgBox (”Hello World”)
End Sub
5、以启用宏工作簿来保存该文档,其扩展名为.xlsm。
注:如果以标准的.xlsx文档来保存该文档,则不可能运行宏代码。当保存该文档时,必须明确地选择“另存为”选项,然后选择“Excel启用宏的工作簿(*.xlsm)”。
6、退出Excel。
(二) 创建包含XML标记的文件来修改Fluent UI
1、在桌面上创建一个名为customUI的文件夹。
2、创建一个新的文本文件,添加下面的XML,然后将其以customUI.xml文件名保存在桌面上的customUI文件夹中。
<customUI xmlns=”http://schemas.microsoft.com/office/2006/01/customui“>
  <ribbon startFromScratch=”true”>
    <tabs>
      <tab id=”CustomTab” label=”我的选项卡”>
        <group id=”SimpleControls” label=”我的组”>
          <button id=”Button1″ imageMso=”HappyFace” size=”large”
            label=”大按钮”
            onAction=”ThisWorkbook.MyMacro” />
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>
(三) 修改包含在启用宏的文件容器中的文件
1、在Windows资源管理器中,在刚创建的Excel文档后面添加.zip扩展名。
2、双击该zip文件,打开它。
3、将customUI文件夹从桌面中拖放到zip文件容器中。
4、将zip文件容器中的_rels文件夹拖放到桌面中。
5、打开该文件夹,然后在文本编辑器中打开该.rels文件。
6、在最后的元素和元素之间添加下面的文本,然后保存并关闭该文件。
<Relationship Id=”customUIRelID” Type=”http://schemas.microsoft.com/office/2006/relationships/ui/extensibility” Target=”customUI/customUI.xml” />
7、从桌面中拖放.rels文件到压缩文件夹中的_rels文件夹中,替换已有的.rels文件。
8、从该容器文件名中移除.zip扩展名。
9、在Excel 2007中打开该启用宏的文件,可以看到自定义的UI取代了内置的Fluent UI,如图所示。

注:取决于Excel的安全设置,可能会看到一个安全警告,告诉已禁用了宏。此时,需要单击在警告旁出现的选项按钮,选择“启用此内容”,然后单击“确定”按钮。
10、单击“Large Button”,将触发onAction回调,调用工作簿中的宏,显示“Hello World”消息。
(四) 自定义带COM加载项的Fluent UI
应用程序级的定制导致修改过的Fluent UI出现在打开的任何文档中。通常,COM加载项来产生这些修改。通过使用可管理的代码创建COM加载项通常有两种方式:可以使用包括在Visual Studio 2005中的共享加载项模板,或者使用Visual Studio 2005 Tools for Office Second Edition可以更容易创建加载项。随后的步骤描述了定制Ribbon的COM加载项调用顺序的方法。虽然创建加载项的概念是相同的,但需要编写的指定的代码是不同的,正如您将在本文随后的内容中所介绍的创建加载项的示例。
(五) 使用COM加载项自定义Fluent UI
1、创建一个COM加载项工程。
创建的加载项必须执行Extensibility.IDTExtensibility2接口和IRibbonExtensibility接口(在Microsoft.Office.Core命名空间中查找)。
2、创建该加载项和安装项,然后安装该项目。
3、开启Office应用程序。
当装载该加载项时,将触发IDTExtensibility2::OnConnection事件初始化加载项,就像在以前的Office版本中一样。
接下来,Office调用QueryInterface方法(为不可管理的加载项)或QueryService方法(为可管理的加载项),确定该加载项是否实现IRibbonExtensibility接口。如果是,则Office调用IRibbonExtensibility::GetCustomUI方法,返回XML标记(从一个XML定制文件或从嵌入在过程中的XML标记),然后Office装载定制的Fluent UI到应用程序中。最后,已为用户准备好定制的UI。
注意:因为内置的Ribbon回调机制的架构,除了为Ribbon准备和返回XML标记,在GetCustomUI方法里执行非初始化是重要的。特别地,不会从该回调方法里显示对话框或消息窗口。
指定在XML标记中的每个控件通过调用其回调过程来公布其功能。例如,为某按钮控件的XML标记可以指定一个onAction属性,指向当用户单击该按钮时执行的过程。在大多数情况下,该回调过程公布一个IRibbonControl接口来识别控件。该回调也可以传递其它参数,例如Boolean对象来指定切换按钮按下或没按下的状态。IRibbonControl接口实现三个属生:Context对象、Id对象和Tag属性。Context对象是包含触发回调的Ribbon的活动窗口;Id对象是在标记里指定的自定义控件的字符串识别器;Tag属性是一个非独立的属性,可以选择在标记中是否指定。


相关文章

同类最新