08.07.2025, 11:21
Hallo zusammen,
vorab sorry, falls mein Beitrag "offtopic" sein sollte, aber vielleicht interessiert es ja einige, die mit dem VBA-Editor von MS Excel unzufrieden sind und lieber mit VS Code arbeiten würden.
Hierfür gibt es eine relativ einfache Möglickeit: xlwings (Open Source).
xlwings stellt eine Verbindung zwischen einer bestimmten Excel-Datei und dem VS Code-Editor her, so dass die VBA-Programmierung über VS-Code erfolgen kann. Mit jedem dortigen Speichern wird der VBA-Code innerhalb der Excel-Datei aktualisiert (nicht umgekehrt).
Die Installation ist einfach:
Die neuste Version von xlwings hier herunterladen: https://github.com/xlwings/xlwings/releases und die Solo-Exe-Datei am besten in das Windows-Verzeichnis (oder einem Verzeichnis im Windows-Path) kopieren (dann bedarf es beim Aufruf keinerlei Pfadangaben).
Die Bearbeitung einer Test.xlsm (am besten in gesondertem Verzeichnis):
1. Test.xlsm öffnen
2. VS Code starten (hier bedarf es keiner zusätzlichen Erweiterung)
Im Terminal des VS Code eingeben:
cd [Pfad zur Excel-Datei]
xlwings vba edit
Nach Bestätigung der darauf folgenden Abfrage wird die Verbindung zwischen VS Code-Editor und der Excel-Datei hergestellt, bei erstmaligem Aufruf werden alle Module der Excel-Datei in das Verzeichnis exportiert (Textdateien als UTF-8 [ohne BOM] codiert).
Diese Textdateien kann man nun im VS Code-Editor bearbeiten. Jedes Speichern im VS Code-Editor überträgt den Code dann in die Exceldatei und kann dort ausprobiert werden.
Mit Strg-c innerhalb des Terminals (VS Code) wird die Verbindung zur Excel-Datei abgebrochen; Veränderungen im VS Code werden danach nicht mehr an die Excel-Datei übertragen.
Bei jedem Aufruf werden neue Module exportiert, die man zwischenzeitlich mit der Excel-Datei erzeugt hat, aber keine bereits exportierten Module aktualisiert! Hat man zwischenzeitlich in dem VBA-Editor an dem Code Veränderungen vorgenommen, dann sollte man die dazugehörige Datei im Verzeichnis löschen, damit sie beim erneuten Aufruf von xlWings erneut (komplettiert) exporiert werden kann.
Die manchmal durch den Export erzeugten Dateiköpfe, wie z.B. 'Attribute VB_Name = "Modul1"' kann man im VS Code belassen, sie werden bei einer Verbindung nicht mit übertragen.
Vereinzelt kam es bei mir beim Export zu Fehlermeldungen, die dadurch entstanden, dass die exportierte Datei im ANSI-Format codiert wurde. Hier hilft es, die Datei zunächst mit Notopad++ (oder auf andere Art) zu öffnen und den Inhalt in eine UTF-8-Codierung zu konvertieren oder auch alle Text-Dateien im Verzeichnis zu löschen und den Export "manuell" von Excel aus zu veranlassen (Datei > Dateien exportieren).
Einen Debugger gibt es für die Verfolgung im VS Code nicht. Das lässt sich aber nach wie vor innerhalb des VBA-Editor inneralb der Excel-Datei durchführen.
Für den VS Code empfiehlt sich die Erweiterung "VBA" von serkonda7 (v1.0.2 vom 2025-05-31).
Viel Spaß beim Ausprobieren.
vorab sorry, falls mein Beitrag "offtopic" sein sollte, aber vielleicht interessiert es ja einige, die mit dem VBA-Editor von MS Excel unzufrieden sind und lieber mit VS Code arbeiten würden.
Hierfür gibt es eine relativ einfache Möglickeit: xlwings (Open Source).
xlwings stellt eine Verbindung zwischen einer bestimmten Excel-Datei und dem VS Code-Editor her, so dass die VBA-Programmierung über VS-Code erfolgen kann. Mit jedem dortigen Speichern wird der VBA-Code innerhalb der Excel-Datei aktualisiert (nicht umgekehrt).
Die Installation ist einfach:
Die neuste Version von xlwings hier herunterladen: https://github.com/xlwings/xlwings/releases und die Solo-Exe-Datei am besten in das Windows-Verzeichnis (oder einem Verzeichnis im Windows-Path) kopieren (dann bedarf es beim Aufruf keinerlei Pfadangaben).
Die Bearbeitung einer Test.xlsm (am besten in gesondertem Verzeichnis):
1. Test.xlsm öffnen
2. VS Code starten (hier bedarf es keiner zusätzlichen Erweiterung)
Im Terminal des VS Code eingeben:
cd [Pfad zur Excel-Datei]
xlwings vba edit
Nach Bestätigung der darauf folgenden Abfrage wird die Verbindung zwischen VS Code-Editor und der Excel-Datei hergestellt, bei erstmaligem Aufruf werden alle Module der Excel-Datei in das Verzeichnis exportiert (Textdateien als UTF-8 [ohne BOM] codiert).
Diese Textdateien kann man nun im VS Code-Editor bearbeiten. Jedes Speichern im VS Code-Editor überträgt den Code dann in die Exceldatei und kann dort ausprobiert werden.
Mit Strg-c innerhalb des Terminals (VS Code) wird die Verbindung zur Excel-Datei abgebrochen; Veränderungen im VS Code werden danach nicht mehr an die Excel-Datei übertragen.
Bei jedem Aufruf werden neue Module exportiert, die man zwischenzeitlich mit der Excel-Datei erzeugt hat, aber keine bereits exportierten Module aktualisiert! Hat man zwischenzeitlich in dem VBA-Editor an dem Code Veränderungen vorgenommen, dann sollte man die dazugehörige Datei im Verzeichnis löschen, damit sie beim erneuten Aufruf von xlWings erneut (komplettiert) exporiert werden kann.
Die manchmal durch den Export erzeugten Dateiköpfe, wie z.B. 'Attribute VB_Name = "Modul1"' kann man im VS Code belassen, sie werden bei einer Verbindung nicht mit übertragen.
Vereinzelt kam es bei mir beim Export zu Fehlermeldungen, die dadurch entstanden, dass die exportierte Datei im ANSI-Format codiert wurde. Hier hilft es, die Datei zunächst mit Notopad++ (oder auf andere Art) zu öffnen und den Inhalt in eine UTF-8-Codierung zu konvertieren oder auch alle Text-Dateien im Verzeichnis zu löschen und den Export "manuell" von Excel aus zu veranlassen (Datei > Dateien exportieren).
Einen Debugger gibt es für die Verfolgung im VS Code nicht. Das lässt sich aber nach wie vor innerhalb des VBA-Editor inneralb der Excel-Datei durchführen.
Für den VS Code empfiehlt sich die Erweiterung "VBA" von serkonda7 (v1.0.2 vom 2025-05-31).
Viel Spaß beim Ausprobieren.
Herzliche Grüße aus dem Rheinland
Jörg
[Windows 10, Microsoft 365]
Jörg
[Windows 10, Microsoft 365]