VBA – Arbeitsmappe schützen (Passwortschutz / Schutz aufheben)
In this Article
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.
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