次の方法で共有


Document.UnprotectDocument メソッド (2007 System)

更新 : 2008 年 7 月

Visual Studio Tools for Office ランタイムによって呼び出されます。これにより、文書のパスワード保護を解除し、キャッシュされたデータを保存できるようになります。

名前空間 :  Microsoft.Office.Tools.Word
アセンブリ :  Microsoft.Office.Tools.Word.v9.0 (Microsoft.Office.Tools.Word.v9.0.dll 内)

構文

'宣言
Protected Overridable Sub UnprotectDocument
'使用

Me.UnprotectDocument()
protected virtual void UnprotectDocument()

解説

パスワードで保護された文書内のキャッシュされたデータが実行時に変更される可能性がある場合、Word のドキュメント レベルのプロジェクトでこのメソッドをオーバーライドします。このメソッドの実装では、Unprotect メソッドを使用して文書の保護を一時的に解除します。

既定では、パスワードで保護された文書内のキャッシュされたデータへの変更は、文書が保存されるときには保持されません。キャッシュされたデータへの変更を保存するには、プロジェクトで次のメソッドをオーバーライドします。

  • UnprotectDocument. 文書を保存するとき、Visual Studio Tools for Office ランタイムはこのメソッドを呼び出します。このメソッドに、文書の保護を一時的に解除するコードを追加します。これにより、キャッシュされたデータへの変更を保存できるようになります。

  • ProtectDocument. 文書を保存した後、Visual Studio Tools for Office ランタイムはこのメソッドを呼び出します。このメソッドに、文書の保護を再適用するコードを追加します。

詳細については、「方法 : パスワードで保護されたドキュメント内のデータをキャッシュする」を参照してください。

次のコード例では、UnprotectDocument メソッドをオーバーライドして文書の保護を一時的に解除し、キャッシュされたデータへの変更を保存できるようにする方法を示します。この例では、まず現在の ProtectionType 値を保存し、後で ProtectDocument メソッドを使用して同じ種類の保護を再適用できるようにします。このコードを使用する場合は、Word のドキュメント レベルのプロジェクトの ThisDocument クラスから実行してください。このコードでは、パスワードは securelyStoredPassword という名前のフィールドに格納されていることを前提としています。

<CachedAttribute()> _
Public CachedString As String = "This string is cached in the document."

Private protectionTypeValue As Word.WdProtectionType

Protected Overrides Sub UnprotectDocument()
    If Me.ProtectionType <> Word.WdProtectionType.wdNoProtection Then
        protectionTypeValue = Me.ProtectionType
        Me.Unprotect(securelyStoredPassword)
    End If
End Sub

Protected Overrides Sub ProtectDocument()
    Me.Protect(protectionTypeValue, Password:=securelyStoredPassword)
End Sub
[CachedAttribute]
public string CachedString = "This string is cached in the document.";

private Word.WdProtectionType protectionTypeValue;

protected override void UnprotectDocument()
{
    if (this.ProtectionType != Word.WdProtectionType.wdNoProtection)
    {
        protectionTypeValue = this.ProtectionType;
        this.Unprotect(ref securelyStoredPassword);
    }
}

protected override void ProtectDocument()
{
    this.Protect(protectionTypeValue, ref missing,
        ref securelyStoredPassword, ref missing, ref missing);
}

アクセス許可

  • 直前の呼び出し元に対する完全な信頼。このメンバは、部分的に信頼されているコードから使用することはできません。詳細については、「部分信頼コードからのライブラリの使用」を参照してください。

参照

参照

Document クラス

Document メンバ

Microsoft.Office.Tools.Word 名前空間

ProtectDocument

その他の技術情報

キャッシュされたデータ

方法 : パスワードで保護されたドキュメント内のデータをキャッシュする

履歴の変更

日付

履歴

理由

2008 年 7 月

新しいトピックを追加

SP1 機能変更