指定したネイティブなドキュメント オブジェクトに対して Microsoft.Office.Tools.Word.Document ホスト項目が作成されているかどうかを示す値を取得します。
名前空間: Microsoft.Office.Tools.Word
アセンブリ: Microsoft.Office.Tools.Word (Microsoft.Office.Tools.Word.dll 内)
構文
'宣言
Function HasVstoObject ( _
document As _Document _
) As Boolean
bool HasVstoObject(
_Document document
)
パラメーター
- document
型: Microsoft.Office.Interop.Word._Document
テストするネイティブなドキュメント オブジェクト。このパラメーターは Microsoft.Office.Interop.Word._Document 型ですが、通常、このメソッドには Microsoft.Office.Interop.Word.Document オブジェクトを渡します。
戻り値
型: System.Boolean
指定した Microsoft.Office.Interop.Word.Document オブジェクトに対して Microsoft.Office.Tools.Word.Document ホスト項目が作成されている場合は true。それ以外の場合は false。
解説
このメソッドをアプリケーション レベルのアドインで呼び出して、Word 文書を閉じたり保存したりする前に保持する必要のあるマネージ コントロールが存在するかどうかをテストできます。 Word 文書にコントロールを保持する方法のサンプルについては、「Word アドインのダイナミック コントロールのサンプル」を参照してください。
注意
document パラメーターの型は、Microsoft.Office.Interop.Word.Document の親インターフェイスである Microsoft.Office.Interop.Word._Document 型です。 したがって、このメソッドは、Microsoft.Office.Interop.Word._Document と Microsoft.Office.Interop.Word.Document の両方の種類のオブジェクトを受け取ることができます。 Word 文書を参照する場合は、Microsoft.Office.Interop.Word.Document を使用するのが一般的です。
例
次のコード例では、現在の文書に関連するホスト項目が存在するかどうかを確認し、存在する場合は、そのホスト項目を取得します。 文書にマネージ コントロールが存在する場合は、ユーザーが文書を保存する際、マネージ コントロールは保持されないという内容の警告メッセージを表示します。 この確認は、DocumentBeforeSave イベントのイベント ハンドラーを使って実行されます。 このコードを実行するには、.NET Framework 4 をターゲットとする Word アドイン プロジェクトの ThisAddIn クラスから実行します。
Private Sub Application_DocumentBeforeSave( _
ByVal Doc As Microsoft.Office.Interop.Word.Document, _
ByRef SaveAsUI As Boolean, _
ByRef Cancel As Boolean) Handles Application.DocumentBeforeSave
If Globals.Factory.HasVstoObject(Doc) = True Then
Dim vstoDoc As Document = Globals.Factory.GetVstoObject(Doc)
If vstoDoc.Controls.Count > 0 Then
System.Windows.Forms.MessageBox.Show( _
"The VSTO controls are not persisted when you save this document.", _
"Controls Persistence", _
System.Windows.Forms.MessageBoxButtons.OK, _
System.Windows.Forms.MessageBoxIcon.Warning)
End If
End If
End Sub
void Application_DocumentBeforeSave(
Microsoft.Office.Interop.Word.Document Doc, ref bool SaveAsUI,
ref bool Cancel)
{
if (Globals.Factory.HasVstoObject(Doc) == true)
{
Document vstoDoc = Globals.Factory.GetVstoObject(Doc);
if (vstoDoc.Controls.Count > 0)
{
System.Windows.Forms.MessageBox.Show(
"The VSTO controls are not persisted when you save this document.",
"Controls Persistence",
System.Windows.Forms.MessageBoxButtons.OK,
System.Windows.Forms.MessageBoxIcon.Warning);
}
}
}
.NET Framework セキュリティ
- 直前の呼び出し元に対する完全な信頼。 このメンバーは、部分的に信頼されているコードから使用することはできません。 詳細については、「部分信頼コードからのライブラリの使用」を参照してください。
参照
参照
Microsoft.Office.Tools.Word 名前空間
その他の技術情報
アプリケーション レベルのアドインにおける実行時の Word 文書や Excel ブックの拡張