VBA Excel – Gibt es eine Möglichkeit sicherzustellen, dass der Benutzer im Direktfenster kein Makro aufrufen/ausführen kann?

VBA Excel – Gibt es eine Möglichkeit sicherzustellen, dass der Benutzer im Direktfenster kein Makro aufrufen/ausführen kann?

Ich habe also eine VBA-Anwendung geschrieben und das VBAProject gesperrt (nicht sichtbar). Aber natürlich kann der Benutzer immer noch auf das Direktfenster zugreifen (wenn er beispielsweise eine andere Excel-Datei öffnet und auf mein VBAProject klickt, auch wenn es gesperrt ist). Obwohl mein VBAProject gesperrt und nicht sichtbar ist, kann der Benutzer, wenn er eine andere Excel-Datei geöffnet hat, auf mein Direktfenster zugreifen und versuchen, meine Makros auszuführen oder Codes einzugeben, um sie auszuführen. Natürlich weiß er nicht, wie ich meine Makros benannt habe, aber er kann wahrscheinlich einen Code ausführen, um die Liste der Namen (Prozedurnamen) abzurufen. Ist es also möglich, einen Benutzer daran zu hindern, Code auszuführen oder Makros in meinem VBAProject-Direktfenster aufzurufen?

Antwort1

Die kurze Antwort: Verwenden Sie das PrivateSchlüsselwort.

Eine längere Antwort: Die einzige Möglichkeit, Ihren Quellcode zu schützen, besteht darin, ihn niemals zu veröffentlichen.

Die lange Antwort: Es ist möglich, ein VBA-Projekt zu erstellen, das den Zugriff auf den VBA-Editor aktiv blockiert. Dies ist jedoch unethisch und schützt Ihren Quellcode nicht besser als ein Projektkennwort.

Denken Sie an den uralten Workbook.CloseStreich, bei dem eine Arbeitsmappe sofort nach dem Öffnen geschlossen wird. Der Benutzer muss lediglich die Makros deaktivieren und die Arbeitsmappe erneut öffnen. Dasselbe gilt für alles, was Sie in VBA schreiben. Wenn Sie sich bei der Ausführung Ihrer Sicherheitsaktion auf VBA verlassen, endet Ihre Sicherheit, wenn Makros deaktiviert werden.

Vergleichen Sie das mit der Sicherheit, die Sie mit einem Projektpasswort erhalten. Sicher, für die meisten Entwickler ist es trivial, das Passwort zu knacken, aber es erfordert mehr Aufwand und wird die meisten Gelegenheitsnutzer abschrecken. Wichtig ist, dass Sie und Ihre Software dadurch auf der respektierten Seite der Linie bleiben.

Es muss über die Verwendung externer Tools anstelle von oder in Verbindung mit VBA gesprochen werden, aber das ist wesentlich komplizierter als die Frage, die Sie gestellt haben. Dies würde auch jeder Definition des Begriffs Malware entsprechen, wenn sie sich so verhalten, wie Sie es vorschlagen.

verwandte Informationen