ApplicationFactory.HasVstoObject メソッド
指定したネイティブなドキュメント オブジェクトに対して Microsoft.Office.Tools.Word.Document ホスト項目が作成されているかどうかを示す値を取得します。
名前空間: Microsoft.Office.Tools.Word
アセンブリ: Microsoft.Office.Tools.Word (Microsoft.Office.Tools.Word.dll 内)
Microsoft.Office.Tools.Word.v4.0.Utilities (Microsoft.Office.Tools.Word.v4.0.Utilities.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 Add-In Dynamic Controls Sample」を参照してください。
[!メモ]
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 イベントのイベント ハンドラーを使って実行されます。このコードは、実行 ThisAddIn のクラスから、ターゲット .NET Framework 4 または .NET Framework 4.5を Word アドイン プロジェクトで使用します。
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 名前空間