Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Externe Arbeitsmappen mit VBA Code erkennen

Forumthread: Externe Arbeitsmappen mit VBA Code erkennen

Externe Arbeitsmappen mit VBA Code erkennen
09.04.2026 20:48:49
Dieter Krüsemann
Moin aus Hamburg,

in meinem Excel-VBA Projekt werden durch den Anwender durch die Masterdatei gesteuert Datenfiles zur Bearbeitung geladen.

Hier besteht eine Sicherheitslücke, denn es existiert Möglichkeit, "trojanischen" VBA Code auf dem Umweg über Fake Datenfiles in mein Projekt einzuschleusen, mit dem Ziel, z.B. den VBA Code meines Projekts zugänglich zu machen.

Dazu meine Frage: wie kann ich beim Laden der Datei automatisch feststellen, ob sie VBA Code welchen Inhalts auch immer enthält, um den Ladevorgang abzubrechen, bevor der schädliche Code überhaupt starten kann?

Danke vorab für Eure Unterstützung
Dieter
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Externe Arbeitsmappe mit Code
09.04.2026 21:45:02
Daniel
Hi
Wenn die geladenen Dateien im keinen Code oder Makros benötigen, dann wäre das einfachste, nur Dateien vom Typ xlsx zu akzeptieren, denn diese enthalten keine Makros.

Ansonsten solltest du vor dem Öffnen einer fremden xlsb oder xlsm- Datei die Events ausschalten (application.enableevents = false), damit eventuell vorhandene Schadmakros nicht gestartet werden, sondern du dir erst den Code anschauen kannst.
Oder du speicherst so eine Datei als xlsx, dann ist der Code auch weg.

Gruß Daniel
Anzeige
Externe Arbeitsmappen mit VBA Code erkennen
09.04.2026 22:49:22
Dieter Krüsemann
Moin Daniel,

wenn ich mich im VBA Code beim Öffnen auf Dateien mit der Endung ".xlsx" beschränke, sollte der erste Teil meiner Frage beantwortet sein, danke.

Jetzt zum zweiten Teil meiner Frage: Ich kann ja eine beliebige leere Datei, z.B. "Dummy.xlsx" öffnen, danach meine Datei, die ich schützen will. Unter "Entwicklertools", "Visual Basic" habe ich dann mindestens Lesezugriff auf die VBA Codes beider Dateien. Wie ich es bisher verstanden habe, könnte ich meine Datei im binären ".xlsb" Format speichern, was den beschriebenen Lesezugriff nicht mehr ermöglichen würde.

Vorteile: ".xlsb" erfordert weniger Speicherplatz und ist um einiges schneller.
Nachteil: Ich muss zwei Dateien ".xlsm" als Quell- und ".xlsb" als Arbeitsdatei fühhren (verschmerzbar).

Kann nach menschlichem Ermessen davon ausgegangen werden, dass der Code in der Binärdatei mindestens ebenso schwer knackbar ist, wie der einer ".,exe" Datei? Wie verhält es sich mit den Excel-Formeln in den einzelnen Arbeitsblättern? Zu letzterem könnte ich mir vorstellen, den Formelinhalt der Zellen durch geeignete VBA-Routinen unsichtbar zu machen. Dazu lege ich im Autostart meiner ".xlsm" Datei fest, was der Anwender überhaupt sehen soll bzw. darf, Formelinhalte, Bereiche von Arbeitsblättern, selbst ganze Arbeitsblätter etc. Dadurch entstehen eine Userebene und eine Adminebene, zwischen denen passwortgesteuert hin- und her gesprungen werden kann. Die ".xlsm" Datei startet immer im Usermodus.

Auch wenn das mit den beiden Ebenen recht gut funktioniert: gibt es da noch eine elegantere Methode. Wie das mit dem ".xlsb" Format zusammenpasst, werde ich noch untersuchen.

Danke vorab
Dieter
Anzeige
Du kannst das prüfen...
09.04.2026 22:16:49
Case
Moin Dieter, :-)

... bevor du die Datei öffnest. ;-)

Mit PowerShell oder Python ist es möglich. Da XLSM nichts anderes als ein ZIP-Container ist, kannst du vorher "reinschauen", ob "vbaProject" vorkommt. ;-)

Bei XLSB-Dateien ist es etwas schwieriger. ;-)

Wenn du ganz sicher gehen willst, dann nutze "olevba" aus den "oletools": ;-)
https://github.com/decalage2/oletools/wiki/olevba

Servus
Case
Anzeige
Also mit dem...
09.04.2026 23:13:34
Case
Moin Dieter, :-)

... Tool "olevba" sieht das so aus: ;-)

Userbild

Ein kurzer Befehl und alles wird aufgelistet (das ist aus einer Datei, die ich vorhin hochgeladen habe). ;-)

Lässt sich auch gut über VBA bzw. PowerShell steuern - und ist sehr mächtig. ;-)

Servus
Case
Anzeige
Externe Arbeitsmappen mit VBA Code erkennen
09.04.2026 23:12:16
Dieter Krüsemann
Moin Case,

liest sich interessant. Dazu werde ich auf einem separaten PC eine eigene Entwicklungsumgebung einrichten. Ziel soll die Feststellung sein, ob auf Anwenderseite neben der "nackten" Excelinstallation keine zusätzlichen Nachinstallationen von Addons etc. notwendig sind.

Solche Nachinstallationen führen auf Anwenderseite nach meinen Erfahrungen mindestens zu Verunsicherungen bis zu Reklamationen, die ich mir ersparen will. "Plug-and-play" soll das Ziel sein.

Werde Deine Ideen testen und sehen, wie die zu meinen Vorstellungen passen.

Danke für Deine Unterstützung
Dieter
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18