次の方法で共有


WorkbookBase.UnprotectDocument メソッド

Visual Studio Tools for Office Runtime によって呼び出されます。これにより、ブックからパスワード保護を解除し、キャッシュされたデータを保存できるようになります。

名前空間:  Microsoft.Office.Tools.Excel
アセンブリ:  Microsoft.Office.Tools.Excel.v4.0.Utilities (Microsoft.Office.Tools.Excel.v4.0.Utilities.dll 内)

構文

'宣言
Protected Overridable Sub UnprotectDocument
protected virtual void UnprotectDocument()

解説

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

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

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

  • ProtectDocument. ブックを保存した後、Visual Studio Tools for Office Runtime はこのメソッドを呼び出します。 このメソッドに、ブックの保護を再適用するコードを追加します。

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

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

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

Private protectStructureValue As Boolean
Private protectWindowsValue As Boolean

Protected Overrides Sub UnprotectDocument()
    protectStructureValue = Me.ProtectStructure
    protectWindowsValue = Me.ProtectWindows

    Me.Unprotect(securelyStoredPassword)
End Sub

Protected Overrides Sub ProtectDocument()
    Me.Protect(securelyStoredPassword, protectStructureValue, _
        protectWindowsValue)
End Sub
[CachedAttribute]
public string CachedString = "This string is cached in the workbook.";

private bool protectStructureValue;
private bool protectWindowsValue;

protected override void UnprotectDocument()
{
    protectStructureValue = this.ProtectStructure;
    protectWindowsValue = this.ProtectWindows;

    this.Unprotect(securelyStoredPassword);
}

protected override void ProtectDocument()
{
    this.Protect(securelyStoredPassword, protectStructureValue,
        protectWindowsValue);
}

.NET Framework セキュリティ

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

参照

参照

WorkbookBase クラス

Microsoft.Office.Tools.Excel 名前空間

ProtectDocument

その他の技術情報

キャッシュされたデータ

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