Met Excel kunt u uw Excel-werkmappen beschermen tegen wijzigingen. Deze zelfstudie laat u zien hoe u de werkmapstructuur kunt beveiligen of opheffen met VBA.
VBA-werkmapbeveiliging
Met VBA Workbook Protection kunt u de structuur van de werkmap vergrendelen. Wanneer een werkmap is beveiligd, kunnen gebruikers geen werkbladen toevoegen, verwijderen, verbergen/weergeven of beveiligen/de beveiliging opheffen. Als u een model bouwt, wilt u waarschijnlijk werkmapbeveiliging inschakelen om te voorkomen dat gebruikers (of u!) per ongeluk werkbladen verwijderen.
UnProtect-werkmap VBA
Gebruik de volgende regel code om de beveiliging van een werkmap op te heffen:
1 | Werkmappen ("Boek1").Bescherming opheffen |
Opmerking: deze code werkt alleen als de werkmap is beveiligd zonder een wachtwoord. Als het was beveiligd met een wachtwoord, moet u ook het wachtwoord invoeren om de beveiliging op te heffen:
Werkmap opheffen met wachtwoord
Met deze coderegel wordt de beveiliging van een werkmap opgeheven die is beveiligd met een wachtwoord:
1 | Werkmappen ("Boek1"). Beveiliging van wachtwoord opheffen: = "wachtwoord" |
of u kunt Wachtwoord:= . weglaten
1 | Werkmappen ("Boek1"). Maak de beveiliging van "wachtwoord" ongedaan |
Maak de bescherming van dit werkboek ongedaan
Met deze code wordt de beveiliging van ThisWorkbook opgeheven (ThisWorkbook is de werkmap waarin de actieve code is opgeslagen. Deze code zal nooit veranderen).
1 | ThisWorkbook.Unprotect |
of maak de beveiliging van ThisWorkbook ongedaan met een wachtwoord:
1 | ThisWorkbook.Unprotect "wachtwoord" |
UnProtect ActiveWorkbook
Met deze code wordt de beveiliging van het ActiveWorbook opgeheven.
1 | ActiveWorkbook.Unprotect |
of maak de ActiveWorkbook ongedaan met een wachtwoord:
1 | ActiveWorkbook.Unprotect "wachtwoord" |
Beveiliging van alle geopende werkmappen opheffen
Met deze code wordt de beveiliging van alle geopende werkmappen opgeheven:
12345678 | Sub UnprotectAllOpenWorkbooks()Dim wb als werkboekVoor elke wb In Werkmappenwb.Bescherming opheffenVolgende wbEinde sub |
UnProtect-werkmap - zonder wachtwoord te kennen
Als u de beveiliging van een werkmap wilt opheffen zonder het wachtwoord te kennen, zijn er verschillende invoegtoepassingen die u kunnen helpen. Ik zou Ribbon Commander aanbevelen.
De beveiliging van alle bladen in de werkmap opheffen
Nadat u de beveiliging van een werkmap opheft, wilt u wellicht ook de beveiliging van alle bladen in de werkmap opheffen. Hier is een procedure die de beveiliging van alle bladen opheft:
12345678 | Sub UnProtectWorkbookAndAllSheets()Dim ws als werkbladActiveWorkbook.UnprotectVoor elke ws In werkbladenws.Bescherming opheffenVolgendeEinde sub |
Werkmap beveiligen
U kunt werkmapstructuren op dezelfde manier beveiligen als u de beveiliging opheft.
Werkmap beveiligen Geen wachtwoord
Deze regel code beschermt een werkmap (geen wachtwoord)
1 | Werkmappen ("Boek1").Beschermen |
Opmerking: ik pas vaak werkmapbeveiliging toe zonder wachtwoorden, gewoon om te voorkomen toevallig wijzigingen in werkboeken.
Werkmap beveiligen met wachtwoord
Deze code beschermt de werkmapstructuur (met een wachtwoord)
1 | Werkmappen ("Boek1"). Bescherm "wachtwoord" |
of:
1 | Werkmappen ("Boek1"). Wachtwoord beveiligen: = "wachtwoord" |
Wachtwoordbeveiliging Excel-bestand
In plaats van werkmapbeveiliging wilt u misschien een heel Excel-bestand met een wachtwoord beveiligen. Om dat te doen met VBA, Opslaan als de werkmap met een wachtwoord:
1 | Werkmappen ("Boek1").OpslaanAls "wachtwoord" |
Voorbeelden van werkmappen beveiligen/onbeschermen
Alle werkbladen in de beveiligde werkmap zichtbaar maken
Met deze procedure wordt de beveiliging van een werkmap opgeheven, worden alle werkbladen verborgen en wordt de werkmap opnieuw beveiligd
12345678910 | Sub UnprotectWB_Unhide_All_Sheets()Dim ws als werkbladActiveWorkbook.UnprotectVoor elke ws In werkbladenws.Visible = xlSheetVisibleVolgendeActiveWorkbook.ProtectEinde sub |
Werkmap en alle bladen beveiligen
Deze procedure beveiligt alle werkbladen in een werkmap en beveiligt vervolgens de werkmap:
1234567891011 | Sub ProtectWB_Protect_All_Sheets()Dim ws als werkbladActiveWorkbook.UnprotectVoor elke ws In werkbladenws.BeschermenVolgendeActiveWorkbook.ProtectEinde sub |
U kunt ook wachtwoordbeveiliging toevoegen:
1234567891011 | Sub ProtectWB_Protect_All_Sheets_Pswrd()Dim ws als werkbladActiveWorkbook.Unprotect "wachtwoord"Voor elke ws In werkbladenws.Bescherm "wachtwoord"VolgendeActiveWorkbook.Bescherm "wachtwoord"Einde sub |