使用VSTO自定义Excel 2007功能区
可以在Excel 2007功能区中创建自定义选项卡和控件组将自已的解决方案集成到Excel用户界面(UI)中。Visual Studio 2005提供了非常方便的自定义Excel 2007功能区的功能,下面简要地介绍使用VSTO自定义Excel 2007功能区的步骤。
步骤1:打开Visual Studio 2005,选择菜单“文件”中的“新建项目”,打开“新建项目”对话框。
步骤2:在“新建项目”对话框中,展开左侧“项目类型”中的Office节点,选择“2007外接程序”,在右侧“模板”中选择“Excel外接程序”,将名称改为“CustomExcelRibbon”,单击“确定”按钮,如图1所示。

图1:新建Excel外接程序项目
步骤3:选择菜单“项目”上的“添加新项”,弹出“添加新项”对话框。
步骤4:在“模板”中选择“功能区支持”,在名称框中输入“MyRibbon”,然后单击“添加”按钮,如图2所示。

图2:添加功能区支持
此时,将添加MyRibbon.vb文件和MyRibbon.xml文件。
步骤5:在MyRibbon.vb文件中,查找以TODO:开头的代码注释,然后取消对ThisAddIn类定义的注释。此时的代码如下所示:
‘ TODO:
‘ 这是对 ThisAddIn 类中的 RequestService 方法的重写。
‘ 要挂钩自定义功能区,请取消此代码的注释。
Partial Public Class ThisAddIn
Private ribbon As MyRibbon
Protected Overrides Function RequestService(ByVal serviceGuid As Guid) As Object
If serviceGuid = GetType(Office.IRibbonExtensibility).GUID Then
If ribbon Is Nothing Then
ribbon = New MyRibbon()
End If
Return ribbon
End If
Return MyBase.RequestService(serviceGuid)
End Function
End Class
这段代码让Office应用程序能找到并加载自定义功能区用户界面。
步骤6:打开MyRibbon.xml,如下所示。
<customUI xmlns=”http://schemas.microsoft.com/office/2006/01/customui” onLoad=”OnLoad”>
<ribbon>
<tabs>
<tab idMso=”TabAddIns”>
<group id=”MyGroup” label=”我的组”>
<toggleButton id=”toggleButton1″ size=”large” label=”我的按钮” screentip=”我的按钮屏幕提示” onAction=”OnToggleButton1″ imageMso=”HappyFace”/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
- 可以更改idMso的设置,将自定义的组放置在相应的选项卡中。上面的代码将自定义的组放置在“加载项”选项卡中。
- 也可以作改tab来自定义选项卡。
- 可以修改上面代码中的label属性设置自定义功能区中控件组和切换按钮的标签。
- 可以在上面的代码中添加XML元素,从而在功能区中添加更多的选项卡、组或控件。如果将控件添加到功能区,则还必须在MyRibbon类中为所添加的每个控件定义一个onAction回调。


发表评论