Excel bietet Ihnen die Möglichkeit, Ihre Excel-Arbeitsmappen vor Änderungen zu schützen. In diesem Tutorial erfahren Sie, wie Sie die Arbeitsmappenstruktur mit VBA schützen oder deren Schutz aufheben.
VBA-Arbeitsmappenschutz
Mit dem VBA-Arbeitsmappenschutz können Sie die Struktur der Arbeitsmappe sperren. Wenn eine Arbeitsmappe geschützt ist, können Benutzer keine Arbeitsblätter hinzufügen, löschen, ausblenden/einblenden oder schützen/deren Schutz aufheben. Wenn Sie ein Modell erstellen, möchten Sie wahrscheinlich den Arbeitsmappenschutz aktivieren, um zu verhindern, dass Benutzer (oder Sie!) Arbeitsblätter versehentlich löschen.
UnProtect Workbook VBA
Um den Schutz einer Arbeitsmappe aufzuheben, verwenden Sie einfach die folgende Codezeile:
1 | Arbeitsmappen("Buch1").Schutz aufheben |
Hinweis: Dieser Code funktioniert nur, wenn die Arbeitsmappe geschützt war ohne ein Passwort. Wenn es mit einem Passwort geschützt war, müssen Sie auch das Passwort eingeben, um den Schutz aufzuheben:
UnProtect-Arbeitsmappe mit Passwort aufheben
Diese Codezeile hebt den Schutz einer mit einem Kennwort geschützten Arbeitsmappe auf:
1 | Workbooks("Book1").Unprotect Password:="password" |
oder Sie können Passwort weglassen:=
1 | Workbooks("Book1").Schutz für "Passwort" aufheben |
Schutz dieser Arbeitsmappe aufheben
Dieser Code hebt den Schutz von ThisWorkbook auf (ThisWorkbook ist die Arbeitsmappe, in der der ausgeführte Code gespeichert ist. Er wird sich nie ändern).
1 | ThisWorkbook.Unprotect |
oder entschütze ThisWorkbook mit einem Passwort:
1 | ThisWorkbook.Unprotect "Passwort" |
UnProtect ActiveWorkbook
Dieser Code hebt den Schutz des ActiveWorbook auf.
1 | ActiveWorkbook.Unprotect |
oder heben Sie den Schutz des ActiveWorkbook mit einem Passwort auf:
1 | ActiveWorkbook.Unprotect "Passwort" |
Schutz aller geöffneten Arbeitsmappen aufheben
Dieser Code hebt den Schutz aller geöffneten Arbeitsmappen auf:
12345678 | Unter UnprotectAllOpenWorkbooks()Dim wb als ArbeitsmappeFür jedes wb in Arbeitsmappenwb.Schutz aufhebenNächstes wbEnd Sub |
UnProtect Workbook - Ohne Passwort zu wissen
Wenn Sie den Schutz einer Arbeitsmappe aufheben müssen, ohne das Kennwort zu kennen, stehen Ihnen mehrere Add-Ins zur Verfügung. Ich würde Ribbon Commander empfehlen.
Schutz für alle Blätter in der Arbeitsmappe aufheben
Nachdem Sie den Schutz einer Arbeitsmappe aufgehoben haben, möchten Sie möglicherweise auch den Schutz aller Blätter in der Arbeitsmappe aufheben. So wird der Schutz aller Blätter aufgehoben:
12345678 | Unter UnProtectWorkbookAndAllSheets()Dim ws als ArbeitsblattActiveWorkbook.UnprotectFür jedes ws in Arbeitsblätternws.Schutz aufhebenNächsteEnd Sub |
Arbeitsmappe schützen
Sie können Arbeitsmappenstrukturen genauso schützen, wie Sie den Schutz aufheben.
Arbeitsmappe ohne Passwort schützen
Diese Codezeile schützt eine Arbeitsmappe (kein Passwort)
1 | Arbeitsmappen("Buch1").Schützen |
Hinweis: Ich wende Arbeitsmappenschutz oft ohne Passwörter an, nur um dies zu verhindern versehentlich Änderungen an Arbeitsmappen.
Arbeitsmappe mit Passwort schützen
Dieser Code schützt die Arbeitsmappenstruktur (mit einem Passwort)
1 | Workbooks("Book1").Protect "password" |
oder:
1 | Workbooks("Book1").Protect Password:="password" |
Excel-Datei mit Passwort schützen
Anstelle des Arbeitsmappenschutzes möchten Sie möglicherweise eine gesamte Excel-Datei mit einem Kennwort schützen. Um dies mit VBA zu tun, speichern Sie als die Arbeitsmappe mit einem Kennwort:
1 | Workbooks("Book1").SaveAs "password" |
Beispiele für Protect/UnProtect-Arbeitsmappen
Alle Arbeitsblätter in der geschützten Arbeitsmappe einblenden
Durch dieses Verfahren wird der Schutz einer Arbeitsmappe aufgehoben, alle Arbeitsblätter ausgeblendet und die Arbeitsmappe erneut geschützt
12345678910 | Unter UnprotectWB_Unhide_All_Sheets()Dim ws als ArbeitsblattActiveWorkbook.UnprotectFür jedes ws in Arbeitsblätternws.Visible = xlSheetVisibleNächsteActiveWorkbook.ProtectEnd Sub |
Arbeitsmappe und alle Blätter schützen
Dieses Verfahren schützt alle Arbeitsblätter in einer Arbeitsmappe und schützt dann die Arbeitsmappe:
1234567891011 | Unter ProtectWB_Protect_All_Sheets()Dim ws als ArbeitsblattActiveWorkbook.UnprotectFür jedes ws in Arbeitsblätternws.ProtectNächsteActiveWorkbook.ProtectEnd Sub |
Sie können auch einen Passwortschutz hinzufügen:
1234567891011 | Unter ProtectWB_Protect_All_Sheets_Pswrd()Dim ws als ArbeitsblattActiveWorkbook.Unprotect "Passwort"Für jedes ws in Arbeitsblätternws.Protect "Passwort"NächsteActiveWorkbook.Protect "Passwort"End Sub |