次の方法で共有


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
)

パラメータ

  • workbook
    型 : Microsoft.Office.Interop.Excel._Workbook

    拡張するブック。このパラメータは手動で指定しないでください。このパラメータは、Excel ブックでこのメソッドを呼び出したときに、ランタイムによって指定されます。

戻り値

型 : Microsoft.Office.Tools.Excel.Workbook

Visual Studio Tools for Office Excel ブック ホスト項目。

使用上の注意

Visual Basic および Visual C# では、このメソッドを、_Workbook 型のオブジェクトのインスタンス メソッドとして呼び出すことができます。インスタンス メソッド構文を使用してこのメソッドを呼び出す場合は、最初のパラメータを省略します。詳細については、「拡張メソッド (Visual Basic)」または「拡張メソッド (C# プログラミング ガイド)」を参照してください。

解説

このメソッドは、アプリケーション レベルのアドインから、Excel で開いているブックをカスタマイズする際に呼び出します。このメソッドは、Microsoft.Office.Tools.Excel.Workbook ホスト項目を返します。

既存の Microsoft.Office.Tools.Excel.Workbook オブジェクトが存在しない場合は、WorkbookExtensions.GetVstoObject メソッドにより新しい拡張オブジェクトが生成されます。それ以降の呼び出しでは、既存の 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 名前空間

その他の技術情報

Workbook ホスト項目

スマート タグの概要

拡張メソッド (C# プログラミング ガイド)

拡張メソッド (Visual Basic)