Partager via


WorkbookBase.UnprotectDocument, méthode

Appelé par Visual Studio Tools pour Office Runtime afin que vous puissiez supprimer la protection par mot de passe du classeur et permettre l'enregistrement des données en mémoire cache.

Espace de noms :  Microsoft.Office.Tools.Excel
Assembly :  Microsoft.Office.Tools.Excel.v4.0.Utilities (dans Microsoft.Office.Tools.Excel.v4.0.Utilities.dll)

Syntaxe

'Déclaration
Protected Overridable Sub UnprotectDocument
protected virtual void UnprotectDocument()

Notes

Remplacez cette méthode dans un projet au niveau du document pour Excel si votre classeur est protégé à l'aide d'un mot de passe et qu'il contient des données en mémoire cache susceptibles d'être modifiées au moment de l'exécution. Dans votre implémentation de cette méthode, utilisez la méthode Unprotect pour annuler temporairement la protection du classeur.

Par défaut, les modifications apportées aux données en mémoire cache dans un classeur protégé par mot de passe ne sont pas rendues persistantes lorsque le classeur est enregistré. Pour enregistrer les modifications apportées aux données en mémoire cache, vous devez remplacer les méthodes suivantes dans votre projet :

  • UnprotectDocument. Lorsque le classeur est enregistré, Visual Studio Tools pour Office Runtime appelle cette méthode. Ajoutez à cette méthode un code qui annule temporairement la protection du classeur. Cela permet l'enregistrement des modifications apportées aux données mises en cache.

  • ProtectDocument. Après avoir enregistré le classeur, Visual Studio Tools pour Office Runtime appelle cette méthode. Ajoutez à cette méthode un code qui réapplique la protection au classeur.

Pour plus d'informations, consultez Comment : mettre en cache des données dans un document protégé par un mot de passe.

Exemples

L'exemple de code suivant montre comment remplacer la méthode UnprotectDocument pour annuler temporairement la protection du classeur afin que les modifications apportées aux données en mémoire cache puissent être enregistrées. L'exemple enregistre d'abord les valeurs ProtectStructure et ProtectWindows actuelles afin que le même type de protection puisse être rétabli ultérieurement dans la méthode ProtectDocument. Pour utiliser ce code, exécutez-le à partir de la classe ThisWorkbook dans un projet au niveau du document pour Excel. Le code suppose que le mot de passe est stocké dans un champ nommé 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);
}

Sécurité .NET Framework

Voir aussi

Référence

WorkbookBase Classe

Microsoft.Office.Tools.Excel, espace de noms

ProtectDocument

Autres ressources

Mise en cache des données

Comment : mettre en cache des données dans un document protégé par un mot de passe