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

步骤7:运行该项目,此时将开启Excel 2007并添加自定义功能区元素,如图3所示。
AddGroup
图3:新添加在功能区中的元素


提示:您可以在评论中使用HTML标签,且任何与HTML标签相同的符号都会被理解为HTML标签并以相应的格式显示.如果您的评论中有代码,可以使用相应的标签,例如,如果有VB或VBA代码,则可以使用[vb]标签,即[vb]放置的代码[/vb],这样会很清晰地显示代码.

留下回复