Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makros gegen Zugriff schützen

Forumthread: Makros gegen Zugriff schützen

Makros gegen Zugriff schützen
02.03.2018 07:23:59
Axel
Guten Morgen,
ich habe gegen unbefugten Zugriff auf den VBA-Code im VBA-Editor einen Passwortschutz über Extras / Eigenschaften von VBAProject / Schutz eingerichtet.
Wenn ich in der Excel-Datei bin, sehe ich aber zwei Makros über Ansicht / Makros / Makros anzeigen, die sich leider auch ausführen lassen. Die beiden Makros sind im VBA-Editor in zwei Modulen gespeichert.
Z.B.:

Sub einblenden()
Application.ScreenUpdating = False
Dim sh As Worksheet
For Each sh In Worksheets
sh.Visible = xlSheetVisible
Next
End Sub

Das erleichtert mir die Administration der Tabellenblätter, die normalerweise ausgeblendet sind (xlSheetVeryHidden).
Wie kann ich diese beiden Makros auch gegen den Zugriff schützen?
Vielen Dank und beste Grüße
Axel
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makros gegen Zugriff schützen
02.03.2018 07:27:03
RPP63
Moin!
Die Makros stehen sicherlich nicht in der geschützten Datei, sondern wahlweise entweder
- in einer anderen Datei
- in der PERSONAL.xlsb
- in einem ungeschützten Add-In
Gruß Ralf
Alternativ
02.03.2018 07:29:10
RPP63
Alternativ musst Du die Datei einmal schließen und wieder öffnen, damit der Schutz auch greift.
Hast Du "Projekt für die Anzeige sperren" überhaupt aktiviert?
Anzeige
AW: Private sub
02.03.2018 07:29:54
MCO
Hallo Axel!
Erstmal kannst du ein "Private" vor Sub schreiben, damit erscheinen Sie dann nicht mehr in der Liste.
Alternativ kannst du auch das ganze Modul Private setzen ("Private module")
Umd wirklich die Ausführung zu verhindern müsstest du meiner Meinung nach im Makro eine Abfrage _ einbauen, z.B. auf Benutzernamen (Application.username) oder Passwort

if application.inputbox("Passwort?") "Ich_bins" then exit sub
Viel Erfolg
Gruß, MCO
Anzeige
AW: Private sub
02.03.2018 07:30:01
MCO
Hallo Axel!
Erstmal kannst du ein "Private" vor Sub schreiben, damit erscheinen Sie dann nicht mehr in der Liste.
Alternativ kannst du auch das ganze Modul Private setzen ("Private module")
Umd wirklich die Ausführung zu verhindern müsstest du meiner Meinung nach im Makro eine Abfrage _ einbauen, z.B. auf Benutzernamen (Application.username) oder Passwort

if application.inputbox("Passwort?") "Ich_bins" then exit sub
Viel Erfolg
Gruß, MCO
Anzeige
Natürlich
02.03.2018 07:31:31
RPP63
Natürlich hast Du Recht, MCO!
Da habe ich etwas schlampig gelesen …
AW: Natürlich
02.03.2018 07:54:22
Axel
Leute, das war es! Mit "Private" vor dem Sub ist der Drops gelutscht...
Vielen Dank für die schnelle Hilfe!
AW: Makros gegen Zugriff schützen
02.03.2018 08:31:58
Daniel
Hi
Der Passwortschutz schützt nur den Code vor Einsicht und Veränderung.
Die Makros sind weiterhin sichtbar und ausführbar.
die Kennzeichnung als "Private" hat den Nachteil, dass diese Makros nicht mehr von Makros in anderen Modulen gestartet werden können (z.B. aus einer Userform heraus)
Wenn Makros in der Makroliste nicht auftauchen sollen, gibt es neben dem "Private" noch zwei weitere Möglichkeiten, diese dort nicht erscheinen zu lassen:
a) alle diese Makros kommen in ein eigenes Modul
In diesem Modul schreibst du in die erste Zeile: Option Private Module
Alle Makros, die in so einem Modul stehen, erscheinen nicht in der Liste, unabhängig davon ob sie Public oder Private sind.
b) gib der Sub einen Parameter: Public Sub MeinMakro(xxx as variant)
da über die Markoliste keine Parameter übergeben werden können, erscheinen solche Makros auch nicht in der Liste.
Der Parameter muss im Code ja nicht verwendet werden.
Beim Aufruf gibst du dann irgenwas an: Call MeinMakro(0)
auch hier bleiben die Makros "Public"
Gruß Daniel
Anzeige
AW: Makros gegen Zugriff schützen
02.03.2018 08:45:14
Axel
Hi Daniel,
danke für die zusätzlichen hilfreichen Informationen. Vielleicht brauche ich das an anderer Stelle noch mal.
Gruß
Axel
;
Anzeige

Infobox / Tutorial

Makros gegen Zugriff schützen


Schritt-für-Schritt-Anleitung

Um Excel Makros zu schützen, kannst du folgende Schritte befolgen:

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Projekt schützen: Klicke mit der rechten Maustaste auf das Projekt (z.B. VBAProject (deineDatei.xlsm)) und wähle „Eigenschaften von VBAProject“.
  3. Passwort setzen: Aktiviere die Option „Projekt für die Anzeige sperren“ und setze ein Passwort. Dies schützt den Excel VBA Code vor unbefugtem Zugriff.
  4. Module als privat markieren: Füge „Private“ vor deine Sub-Prozeduren ein, um diese in der Makroliste unsichtbar zu machen.
    Private Sub MeinMakro()
       ' Dein Code hier
    End Sub
  5. Speichern und schließen: Schließe die Datei und öffne sie erneut, damit die Änderungen wirksam werden.

Häufige Fehler und Lösungen

  • Makros sind weiterhin sichtbar: Dies passiert, wenn die Makros nicht als „Private“ deklariert sind oder sich in einer ungeschützten Datei befinden. Achte darauf, dass das gesamte Modul als „Private Module“ gesetzt ist.
  • Passwortschutz funktioniert nicht: Stelle sicher, dass du die Datei nach dem Setzen des Passworts schließt und erneut öffnest. Der Schutz greift erst nach dem Neustart.

Alternative Methoden

Neben dem obigen Vorgehen gibt es andere Möglichkeiten, um Excel Makros zu schützen:

  • Option Private Module: Erstelle ein neues Modul und füge zuoberst Option Private Module ein. Dies sorgt dafür, dass alle darin enthaltenen Makros nicht in der Makroliste angezeigt werden.
  • Parameter in Sub-Prozeduren: Verwende Parameter in deinen Sub-Prozeduren. Zum Beispiel:
    Public Sub MeinMakro(xxx As Variant)
       ' Dein Code hier
    End Sub

    Diese Methode macht die Makros ebenfalls unsichtbar in der Makroliste.


Praktische Beispiele

Hier sind einige Beispiele, wie du Excel Makros mit Passwort schützen kannst:

  1. Private Sub mit Passwortabfrage:
    Private Sub MeinMakro()
       If Application.InputBox("Passwort?", "Zugriff") <> "Ich_bins" Then Exit Sub
       ' Der Rest deines Codes
    End Sub
  2. Module als privat:
    ' In einem neuen Modul
    Option Private Module
    Sub GeheimMakro()
       ' Geheimer Code
    End Sub

Beide Methoden helfen, den Zugriff auf deine VBA Makros zu beschränken.


Tipps für Profis

  • Regelmäßige Passwortänderung: Ändere dein Passwort regelmäßig, um die Sicherheit deiner VBA-Projekte zu erhöhen.
  • Backup der Datei: Erstelle immer eine Sicherungskopie deiner Excel-Dateien, bevor du Änderungen vornimmst.
  • Verwende komplexe Passwörter: Setze starke Passwörter, um unbefugten Zugriff zu verhindern.

FAQ: Häufige Fragen

1. Wie kann ich meine Makros endgültig schützen?
Die effektivste Methode ist die Kombination aus Passwortschutz und der Deklaration der Makros als „Private“.

2. Was passiert, wenn ich das Passwort vergesse?
Wenn du das Passwort für den VBA-Code vergisst, gibt es keine offizielle Möglichkeit, darauf zuzugreifen. Es gibt jedoch Drittanbieter-Tools, die helfen können, aber deren Verwendung kann riskant sein.

3. Können andere Benutzer meine Makros ausführen?
Ja, solange die Makros nicht als „Private“ deklariert sind, können andere Benutzer sie ausführen, wenn sie Zugang zur Datei haben.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige