Rückkehr in VBA-Code-Beispiele

VBA – Arbeitsmappe schützen (Passwortschutz / Schutz aufheben)

Excel bietet Ihnen die Möglichkeit, Ihre Arbeitsmappen vor Änderungen zu schützen. In diesem Tutorial erfahren Sie, wie Sie die Arbeitsmappenstruktur mit VBA schützen bzw. den Schutz davon aufheben können.

VBA – Arbeitsmappenschutz

Der VBA-Arbeitsmappenschutz ermöglicht es Ihnen, die Struktur der Arbeitsmappe zu sperren. Wenn eine Arbeitsmappe geschützt ist, können Benutzer keine Arbeitsblätter hinzufügen, löschen, ausblenden/einblenden oder schützen bzw. den Schutz davon aufheben. Wenn Sie ein Modell erstellen, möchten Sie wahrscheinlich den Arbeitsmappenschutz aktivieren, um zu verhindern, dass Benutzer (oder Sie selbst!) versehentlich Arbeitsblätter löschen.

vba arbeitsmappe schuetzen

Den Schutz der Arbeitsmappe aufheben VBA

Zum Aufheben des Schutzes einer Arbeitsmappe verwenden Sie einfach die folgende Codezeile:

Workbooks("Mappe1").Unprotect

Hinweis: Dieser Code funktioniert nur, wenn die Arbeitsmappe nicht mit einem Kennwort geschützt ist. Wenn sie mit einem Kennwort geschützt ist, müssen Sie auch das Kennwort eingeben, um den Schutz aufzuheben:

Den Schutz der Arbeitsmappe mit Kennwort aufheben

Diese Codezeile hebt den Schutz einer Arbeitsmappe auf, die mit einem Kennwort geschützt ist:

Arbeitsmappen("Mappe1").Unprotect Password:="Passwort"

oder Sie können Password:= auslassen:

Workbooks("Mappe1").Unprotect "Passwort"

ThisWorkbook – Schutz aufheben

Dieser Code hebt den Schutz von ThisWorkbook auf (ThisWorkbook ist die Arbeitsmappe, in der der laufende Code gespeichert ist. Sie wird sich nie ändern).

ThisWorkbook.Unprotect

oder hebt den Schutz von ThisWorkbook mit einem Kennwort auf:

ThisWorkbook.Unprotect "Passwort"

ActiveWorkbook – Schutz aufheben

Dieser Code hebt den Schutz von ActiveWorbook (aktuelle Arbeitsmappe) auf.

ActiveWorkbook.Unprotect

oder hebt den Schutz von ActiveWorkbook mit einem Kennwort auf:

ActiveWorkbook.Unprotect "Kennwort"

Den Schutz Von allen geöffneten Arbeitsmappen aufheben

Dieser Code hebt den Schutz von allen geöffneten Arbeitsmappen auf:

Sub AlleOffenenMappen_SchutzAufheben()
    Dim wb As Workbook
    
    For Each wb In Workbooks
        wb.Unprotect
    Next wb

End Sub

Den Schutz einer Arbeitsmappe ohne Kenntnis des Kennworts aufheben

Wenn Sie den Schutz einer Arbeitsmappe aufheben müssen, ohne das Kennwort zu kennen, gibt es mehrere Add-Ins, die Ihnen dabei helfen. Ich würde den Ribbon Commander empfehlen.

Den Schutz aller Blätter in einer Arbeitsmappe aufheben

Nachdem Sie den Schutz von einer Arbeitsmappe aufgehoben haben, möchten Sie vielleicht auch den Schutz aller Arbeitsblätter in derselben Arbeitsmappe aufheben. Hier ist eine Prozedur, die den Schutz aller Blätter aufheben wird:

Sub AktuelleAarbeitsmappeUndAlleBlaetter_SchutzAufheben()
    Dim ws As Worksheet
    
    ActiveWorkbook.Unprotect
    For Each ws In Worksheets
        ws.Unprotect
    Next
End Sub

Arbeitsmappe schützen

Sie können Arbeitsmappenstrukturen auf die gleiche Weise schützen, wie Sie den Schutz aufheben.

Arbeitsmappe ohne Kennwort schützen

Diese Codezeile schützt eine Arbeitsmappe (ohne Kennwort)

Workbooks("Mappe1").Protect

Hinweis: Ich wende den Schutz von Arbeitsmappen oft ohne Kennwort an, einfach um versehentliche Änderungen an Arbeitsmappen zu verhindern.

Arbeitsmappe mit Kennwort schützen

Mit diesem Code wird die Struktur der Arbeitsmappe (mit einem Kennwort) geschützt:

Workbooks("Mappe1").Protect "Passwort"

oder:

Workbooks("Mappe1").Protect Password:="Passwort"

Excel-Datei mit Passwort schützen

Anstatt Arbeitsmappen zu schützen, können Sie auch eine ganze Excel-Datei mit einem Kennwort schützen. Um dies mit VBA zu tun, speichern Sie die Arbeitsmappe mit einem Kennwort:

Workbooks("Mappe1").SaveAs "Passwort"

Beispiele für das Schützen / Aufheben des Schutzes von Arbeitsmappen

Alle Arbeitsblätter in der geschützten Arbeitsmappe einblenden

Mit dieser Prozedur wird der Schutz einer Arbeitsmappe aufgehoben, alle Arbeitsblätter werden ausgeblendet und der Schutz der Arbeitsmappe wird wiederhergestellt:

Sub UnprotectWB_Unhide_All_Sheets_SchutzAufhebenWB_Alle_Blaetter_Einblenden()
    Dim ws As Worksheet
    
    ActiveWorkbook.Unprotect
    For Each ws In Worksheets
        ws.Visible = xlSheetVisible
    Next
    
    ActiveWorkbook.Protect
End Sub

Arbeitsmappe und alle Blätter schützen

Diese Prozedur schützt alle Arbeitsblätter in einer Arbeitsmappe und schützt dann die Arbeitsmappe selbst:

Sub Arbeitsmappe_Und_Alle_Blaetter_Schuetzen()
    Dim ws As Worksheet
    
    ActiveWorkbook.Unprotect
    
    For Each ws In Worksheets
        ws.Protect
    Next
    
    ActiveWorkbook.Protect
End Sub

Sie können auch einen Passwortschutz hinzufügen:

Sub Arbeitsmappe_Und_Alle_Blaetter_Schuetzen_Passwort()
    Dim ws As Worksheet
    
    ActiveWorkbook.Unprotect "Passwort"
    
    For Each ws In Worksheets
        ws.Protect "Passwort"
    Next
    
    ActiveWorkbook.Protect "Passwort"
End Sub