Wie schütze ich eine arbeitsmappe mit vba?

Um eine Arbeitsmappe zu schützen, müssen Sie die PROTECT-Methode von VBA verwenden. Mit dieser Methode können Sie ein Passwort verwenden oder den Arbeitsmappenschutz sogar ohne Passwort aktivieren. Bei dem von Ihnen verwendeten Passwort müssen Sie jedoch eines beachten: Groß-/Kleinschreibung beachten.

 Workbook.Protect "Password"
  1. Geben Sie die Arbeitsmappe an, die Sie schützen möchten.
  2. Tippen und zeigen Sie und wählen Sie die Schutzmethode aus der Liste aus oder tippen Sie auf „Schützen“.
  3. Geben Sie das Passwort ein, das Sie festlegen möchten.
  4. Führen Sie den Code aus, um die Arbeitsmappe zu schützen.

In diesem Tutorial lernen wir diese Methode auf unterschiedliche Weise kennen und lernen auch, wie man den Schutz einer Arbeitsmappe aufhebt.

Nützliche Links: Ausführen eines MakrosMakrorecorderVisual Basic EditorHandbuch zu persönlichen Makros

Schützen Sie eine Arbeitsmappe mit einem Passwort

Nachfolgend finden Sie den Code, den Sie zum Kennwortschutz einer Arbeitsmappe verwenden müssen. In diesem Code haben Sie zunächst den Arbeitsmappennamen und die Kennwortschutzmethode.

 Workbooks("Book1").Protect "test123"

Und wenn ich diesen Code ausführe, wird die Arbeitsmappe „Book1“ gesperrt.

Es sperrt den Ordner „book1“.

Schützen Sie eine Arbeitsmappe ohne Passwort

Und wenn Sie eine Arbeitsmappe ohne Passwort schützen möchten, sollten Sie das Argument „Passwort“ ignorieren, genau wie den folgenden Code.

 Workbooks("Book1").Protect

Wenn Sie versuchen, eine kennwortlose Arbeitsmappe zu schützen, die bereits kennwortgeschützt ist, zeigt Excel ein Dialogfeld zur Eingabe dieses Kennworts an.

Heben Sie den Schutz einer Arbeitsmappe mit einem Passwort auf

Auf die gleiche Weise können Sie die Unprotect-Methode verwenden, um den Schutz der Arbeitsmappe aufzuheben. Der Code dafür würde dann etwa wie folgt aussehen.

 Workbooks("Book1").Unprotect "test123"

Es gibt eine Sache, auf die Sie achten müssen, wenn Sie versuchen, den Schutz einer Arbeitsmappe aufzuheben, die w ist

Heben Sie den Schutz einer Arbeitsmappe ohne Kennwort auf

Und wenn eine Arbeitsmappe ohne Passwort geschützt ist, können Sie dieselbe Methode verwenden, ohne das Passwortargument anzugeben.

Schützen Sie alle geöffneten Arbeitsmappen

Im folgenden Code haben wir eine FOR EACH-Schleife , um alle geöffneten Arbeitsmappen zu durchlaufen und jede Arbeitsmappe einzeln mit derselben Schutzmethode zu schützen.

 '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

Da ich die persönliche Makro-Arbeitsmappe verwende, habe ich eine IF THEN ELSE-Anweisung verwendet, um zu ignorieren, ob der Arbeitsmappenname „ personal.xlsb “ lautet. Stellen Sie außerdem sicher, dass Sie sich darum kümmern.

Schützen Sie eine geschlossene Arbeitsmappe

Sie können auch eine geschlossene Arbeitsmappe, die an einem Speicherort gespeichert ist, schützen und den Schutz aufheben. Schauen Sie sich den folgenden Code an, in dem ich meinen Desktop-Speicherort verwendet habe, um die Datei „test.xlsx“ zu verwenden.

 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

Der obige Code verwendete die Workbook.Open-Methode, um die Arbeitsmappe zu öffnen, die Sie schützen möchten, und deaktivierte dann die Bildschirmaktualisierung, um im Backend zu funktionieren.

Schützen Sie alle geschlossenen Arbeitsmappen in einem Ordner

Der folgende Code durchläuft alle Arbeitsmappen, die sich in dem Ordner befinden, den Sie als Pfad angegeben haben. Und dann öffnen Sie jeden Ordner, schützen ihn und schließen ihn einzeln.

 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

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert