Freigeben über


Gewusst wie: Zwischenspeichern von Daten in einem kennwortgeschützten Dokument

Wenn Sie dem Datencache in einem kennwortgeschützten Dokument oder einer kennwortgeschützten Arbeitsmappe Daten hinzufügen, werden Änderungen an den zwischengespeicherten Daten nicht automatisch gespeichert.Sie können Änderungen an den zwischengespeicherten Daten speichern, indem Sie zwei Methoden im Projekt überschreiben.

Betrifft: Die Informationen in diesem Thema betreffen Projekte auf Dokumentebene für die folgenden Anwendungen: Excel 2013 und Excel 2010, Word 2013 und Word 2010. Weitere Informationen finden Sie unter Verfügbare Funktionen nach Office-Anwendung und Projekttyp.

Zwischenspeichern in Word-Dokumenten

So speichern Sie Daten in einem kennwortgeschützten Word-Dokument zwischen

  1. Markieren Sie in der ThisDocument-Klasse ein öffentliches Feld oder eine Eigenschaft, die zwischengespeichert werden soll.Weitere Informationen finden Sie unter Zwischenspeichern von Daten.

  2. Überschreiben Sie die DocumentBase.UnprotectDocument-Methode in der ThisDocument-Klasse, und entfernen Sie den Schutz des Dokuments.

    Beim Speichern des Dokuments ruft die Visual Studio-Tools für Office-Laufzeit diese Methode auf, damit der Schutz des Dokuments aufgehoben werden kann.So können Änderungen an den zwischengespeicherten Daten gespeichert werden.

  3. Überschreiben Sie die DocumentBase.ProtectDocument-Methode in der ThisDocument-Klasse, und aktivieren Sie den Schutz des Dokuments erneut.

    Nach dem Speichern des Dokuments ruft die Visual Studio-Tools für Office-Laufzeit diese Methode auf, damit der Schutz des Dokuments wieder aktiviert werden kann.

Cc668203.collapse_all(de-de,VS.110).gifBeispiel

Im folgenden Codebeispiel wird gezeigt, wie Daten in einem kennwortgeschützten Word-Dokument zwischengespeichert werden.Bevor der Schutz mit der DocumentBase.UnprotectDocument-Methode aufgehoben wird, wird der aktuelle ProtectionType-Wert gespeichert, sodass in der DocumentBase.ProtectDocument-Methode der gleiche Schutztyp verwendet werden kann.

<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);
}

Cc668203.collapse_all(de-de,VS.110).gifKompilieren des Codes

Fügen Sie diesen Code der ThisDocument-Klasse im Projekt hinzu.Im Code wird davon ausgegangen, dass das Kennwort in einem Feld mit dem Namen securelyStoredPassword gespeichert wird.

Zwischenspeichern in Excel-Arbeitsmappen

In Excel-Projekten ist dieses Verfahren nur dann erforderlich, wenn die gesamte Arbeitsmappe mithilfe der Workbook.Protect-Methode mit einem Kennwort geschützt wird.Dieses Verfahren ist nicht erforderlich, wenn nur eine bestimmte Arbeitsmappe mithilfe der Worksheet.Protect-Methode mit einem Kennwort geschützt wird.

So speichern Sie Daten in einer kennwortgeschützten Excel-Arbeitsmappe zwischen

  1. Markieren Sie in der ThisWorkbook-Klasse oder einer der Sheetn-Klassen ein öffentliches Feld oder eine Eigenschaft, die zwischengespeichert werden soll.Weitere Informationen finden Sie unter Zwischenspeichern von Daten.

  2. Überschreiben Sie die WorkbookBase.UnprotectDocument-Methode in der ThisWorkbook-Klasse, und entfernen Sie den Schutz der Arbeitsmappe.

    Beim Speichern der Arbeitsmappe ruft die Visual Studio-Tools für Office-Laufzeit diese Methode auf, damit der Schutz der Arbeitsmappe aufgehoben werden kann.So können Änderungen an den zwischengespeicherten Daten gespeichert werden.

  3. Überschreiben Sie die WorkbookBase.ProtectDocument-Methode in der ThisWorkbook-Klasse, und aktivieren Sie den Schutz des Dokuments erneut.

    Nach dem Speichern der Arbeitsmappe ruft die Visual Studio-Tools für Office-Laufzeit diese Methode auf, damit der Schutz der Arbeitsmappe wieder aktiviert werden kann.

Cc668203.collapse_all(de-de,VS.110).gifBeispiel

Im folgenden Codebeispiel wird gezeigt, wie Daten in einer kennwortgeschützten Excel-Arbeitsmappe zwischengespeichert werden.Bevor der Schutz mit der WorkbookBase.UnprotectDocument-Methode aufgehoben wird, werden die aktuellen ProtectStructure- und ProtectWindows-Werte gespeichert, sodass dieselbe Art von Schutz später in der WorkbookBase.ProtectDocument-Methode verwendet werden kann.

<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);
}

Cc668203.collapse_all(de-de,VS.110).gifKompilieren des Codes

Fügen Sie diesen Code der ThisWorkbook-Klasse im Projekt hinzu.Im Code wird davon ausgegangen, dass das Kennwort in einem Feld mit dem Namen securelyStoredPassword gespeichert wird.

Siehe auch

Aufgaben

Gewusst wie: Zwischenspeichern von Daten zur Offlineverwendung oder zur Verwendung auf einem Server

Gewusst wie: Programmgesteuertes Zwischenspeichern von Datenquellen in einem Office-Dokument

Konzepte

Zwischenspeichern von Daten