WorkbookExtensions.GetVstoObject 方法 (2007 system)

更新:2007 年 11 月

返回一个扩展本机 Excel 工作簿功能的工作簿宿主项。

命名空间:  Microsoft.Office.Tools.Excel.Extensions
程序集:  Microsoft.Office.Tools.Excel.v9.0(在 Microsoft.Office.Tools.Excel.v9.0.dll 中)

语法

声明
<ExtensionAttribute> _
Public Shared Function GetVstoObject ( _
    workbook As _Workbook _
) As Workbook
用法
Dim workbook As _Workbook
Dim returnValue As Workbook

returnValue = workbook.GetVstoObject()
public static Workbook GetVstoObject(
    this _Workbook workbook
)

参数

返回值

类型:Microsoft.Office.Tools.Excel.Workbook

一个 Visual Studio Tools for Office Excel 工作簿宿主项。

使用说明

在 Visual Basic 和 C# 中,可以在 _Workbook 类型的任何对象上将此方法作为实例方法来调用。当使用实例方法语法调用此方法时,请省略第一个参数。有关更多信息,请参见扩展方法 (Visual Basic)扩展方法(C# 编程指南)

备注

在应用程序级外接程序中调用此方法可自定义在 Excel 中打开的任何工作簿。此方法返回一个 Microsoft.Office.Tools.Excel.Workbook 宿主项。

WorkbookExtensions.GetVstoObject 方法会生成一个已扩展的新 Microsoft.Office.Tools.Excel.Workbook 对象(如果还没有生成此类对象)。对此方法的后续调用会返回现有的 Workbook 对象的缓存实例。

说明:

workbook 参数属于 Microsoft.Office.Interop.Excel._Workbook 类型,后者是 Microsoft.Office.Interop.Excel.Workbook 的父接口。因此,此方法可扩展以下两种类型:Microsoft.Office.Interop.Excel._WorkbookMicrosoft.Office.Interop.Excel.Workbook。通常,在引用 Excel 工作簿时,使用 Microsoft.Office.Interop.Excel.Workbook

文档级自定义项的限制

与在应用程序级外接程序中使用此方法相比,在文档级自定义项项目中使用此方法有更多限制。不能使用它为本机 Excel 工作簿生成新的 Visual Studio Tools for Office Excel 工作簿。可以使用此方法在设计时获取一个属于自定义项项目一部分的现有 Visual Studio Tools for Office Excel 工作簿。有关更多信息,请参见从文档级自定义项中的本机 Office 对象获取扩展对象

如果本机 Excel 工作簿不是 Visual Studio Tools for Office Excel 工作簿的基础对象,则此方法返回 nullnull 引用(在 Visual Basic 中为 Nothing)。

有关在文档级外接程序中使用此方法的示例,请参见在运行时向 Office 文档添加控件

示例

下面的代码示例从活动的 Excel 工作簿获取 Visual Studio Tools for Office Microsoft.Office.Tools.Excel.Workbook 对象。接下来,该示例将检查是否存在为此工作簿定义的任何智能标记。然后代码将显示智能标记或者表明未找到智能标记的消息。若要使用此代码,请从 Excel 外接程序项目的 ThisAddIn 类中运行它。

Dim vstoWorkbook As Workbook = _
    Me.Application.ActiveWorkbook.GetVstoObject()

Dim sb As StringBuilder = New StringBuilder()
If vstoWorkbook.VstoSmartTags.Count > 0 Then
    sb.Append("VSTO smart tags found in this workbook:")
Else
    sb.Append("No VSTO smart tags were found in this workbook.")
End If

For Each st As SmartTag In vstoWorkbook.VstoSmartTags
    sb.Append(vbCrLf + st.Caption)
Next
System.Windows.Forms.MessageBox.Show(sb.ToString())
Workbook vstoWorkbook = 
    this.Application.ActiveWorkbook.GetVstoObject();

StringBuilder sb = new StringBuilder();
if (vstoWorkbook.VstoSmartTags.Count > 0)
{
    sb.Append("VSTO smart tags found in this workbook:");
}
else
{
    sb.Append("No VSTO smart tags were found in this workbook.");
}

foreach (SmartTag st in vstoWorkbook.VstoSmartTags)
{
    sb.Append("\r\n" + st.Caption);
}
System.Windows.Forms.MessageBox.Show(sb.ToString());

权限

另请参见

参考

WorkbookExtensions 类

WorkbookExtensions 成员

Microsoft.Office.Tools.Excel.Extensions 命名空间

其他资源

工作簿宿主项

智能标记概述

扩展方法(C# 编程指南)

扩展方法 (Visual Basic)