Hoe een werkmap beveiligen met vba?

Om een werkmap te beveiligen, moet u de PROTECT-methode van VBA gebruiken. Met deze methode kunt u een wachtwoord gebruiken of zelfs werkmapbeveiliging zonder wachtwoord inschakelen. Maar er is één ding waar u rekening mee moet houden bij het wachtwoord dat u gebruikt, namelijk HOOFDGEVOELIG.

 Workbook.Protect "Password"
  1. Geef de werkmap op die u wilt beveiligen.
  2. Tik en wijs en selecteer de beveiligingsmethode uit de lijst of tik op “Beschermen”.
  3. Voer het wachtwoord in dat u wilt instellen.
  4. Voer de code uit om de werkmap te beveiligen.

In deze zelfstudie leren we deze methode op verschillende manieren en leren we ook hoe u de beveiliging van een werkmap opheft.

Handige links: Een macro uitvoerenMacrorecorderVisual Basic EditorHandboek voor persoonlijke macro’s

Beveilig een werkmap met een wachtwoord

Hieronder vindt u de code die u moet gebruiken om een werkmap met een wachtwoord te beveiligen. In deze code hebt u eerst de naam van de werkmap en de wachtwoordbeveiligingsmethode.

 Workbooks("Book1").Protect "test123"

En wanneer ik deze code uitvoer, wordt de werkmap “Book1” vergrendeld.

het vergrendelt de map book1

Beveilig een werkmap zonder wachtwoord

En als u een werkmap zonder wachtwoord wilt beveiligen, moet u het argument “Wachtwoord” negeren, net als de volgende code.

 Workbooks("Book1").Protect

Als u een wachtwoordloze werkmap probeert te beveiligen die al met een wachtwoord is beveiligd, geeft Excel een dialoogvenster weer waarin u dat wachtwoord kunt invoeren.

De beveiliging van een werkmap opheffen met een wachtwoord

Op dezelfde manier kunt u de unprotect-methode gebruiken om de beveiliging van de werkmap op te heffen. De code ervoor ziet er ongeveer als volgt uit.

 Workbooks("Book1").Unprotect "test123"

Er is één ding waar u op moet letten als u probeert de beveiliging van een werkmap op te heffen die w

De beveiliging van een werkmap zonder wachtwoord opheffen

En als een werkmap zonder wachtwoord is beveiligd, kunt u dezelfde methode gebruiken zonder het wachtwoordargument op te geven.

Bescherm alle geopende werkmappen

In de onderstaande code hebben we een FOR EACH-lus om alle geopende werkmappen te doorlopen en elke werkmap één voor één te beveiligen met dezelfde beveiligingsmethode.

 'variable to use as a workbook Dim wb As Workbook 'loop through all the open workbooks For Each wb In Application.Workbooks 'condition to check workbook name If wb.Name <> "PERSONAL.XLSB" Then 'protect every workbook with a password wb.Protect "test123" End If Next wb End Sub

Omdat ik de persoonlijke macrowerkmap gebruik, heb ik een IF THEN ELSE-instructie gebruikt om te negeren of de naam van de werkmap ” personal.xlsb ” is. Zorg er ook voor dat je er zorg voor draagt.

Beveilig een gesloten werkmap

U kunt ook een gesloten werkmap die op een locatie is opgeslagen, beveiligen of de beveiliging ervan opheffen. Kijk naar de volgende code waarin ik mijn bureaubladlocatie heb gebruikt om het bestand “test.xlsx” te gebruiken.

 Sub vba_protect_workbook() 'declare varibale to use for the workbook Dim wb As Workbook 'open the workbook that you want to protect Set wb = Workbooks.Open("C:UsersDellDesktoptest.xlsx") 'turn off the screen-updating to _ done everything in the backend Application.ScreenUpdating = False 'protect the workbook wb.Protect 'close the workbook after protecting wb.Close SaveChanges = True 'turn off the screen-updating Application.ScreenUpdating = True End Sub

De bovenstaande code gebruikte de Workbook.Open-methode om de werkmap te openen die u wilt beschermen en schakel vervolgens het bijwerken van het scherm uit om in de backend te werken.

Bescherm alle gesloten werkmappen in een map

De volgende code loopt door alle werkmappen die zich in de map bevinden die u als pad hebt opgegeven. En open vervolgens elke map, bescherm hem en sluit hem één voor één.

 Sub vba_protect_all_the_workbooks() 'declare variables Dim wb As Workbook Dim myPath As String Dim myFile As String Dim myExtension As String Dim FldrPicker As FileDialog 'optimize macro Application.ScreenUpdating = False Application.EnableEvents = False Application.Calculation = xlCalculationManual 'specify the folder where workbooks are saved myPath = "C:UsersDellDesktopfolder" 'jump to reset setting if there's an error On Error GoTo ResetSettings 'target file fxtension (must include wildcard "*") myExtension = "*.xls*" 'target path myFile = Dir(myPath & myExtension) 'Loop through each Excel file in folder Do While myFile <> "" 'Set variable equal to opened workbook Set wb = Workbooks.Open(Filename:=myPath & myFile) 'protect workbook wb.Protect 'Save and Close Workbook wb.Close SaveChanges:=True 'Get next file name myFile = Dir Loop 'Message Box when task is completed MsgBox "Done!" 'reset setting that were change for optimization ResetSettings: Application.EnableEvents = True Application.Calculation = xlCalculationAutomatic Application.ScreenUpdating = True End Sub

Voeg een reactie toe

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *