VS Code-Editor statt VBA-Editor
#1
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.
Herzliche Grüße aus dem Rheinland
Jörg

[Windows 10, Microsoft 365]
Antworten Top
#2
(08.07.2025, 11:21)LuckyJoe schrieb: ...aber vielleicht interessiert es ja einige, die mit dem VBA-Editor von MS Excel unzufrieden sind und lieber mit VS Code arbeiten würden.

Ich kann VBA Code auch im Texteditor schreiben. Das würde mich dann aber echt unzufrieden machen... Deshalb schreibe ich den lieber im VBA Editor...
Kann den auch direkt in VS schreiben, nur ist da die Syntax eine andere.

Deshalb, was macht Dich denn unzufrieden beim VBA Editor? Und welche Vorteile sollte der Umstieg dem Anwender bringen? Das wäre mal interessant zu erfahren...
Nur wechseln des Wechsel willens ist ziemlich unsinnig...

(08.07.2025, 11:21)LuckyJoe schrieb: 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.
Ist ja wie im Texteditor... :)
Da bleibe ich lieber gleich im VBA Editor und erspare mir diese Umständlichkeit...
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

[-] Folgende(r) 1 Nutzer sagt Danke an Ralf A für diesen Beitrag:
  • snb
Antworten Top
#3
Also EarlFred hat mal vor rund einem Jahr berichtet, dass er auf eine andere Entwicklungsumgebung (den Namen habe ich vergessen) gewechselt ist, die wohl insgesamt sehr viel komfortabler war.

Ob, und wie viel, nur ein anderer Editor bring, das muss jeder für sich selbst entscheiden. Aber die MS-Editoren sind nach meinem Empfinden durchaus verbesserungsfähig. Allem voran der PQ-Editor, der nicht einmal ein "Rückgängig" kennt.
Antworten Top
#4
Kann das Ding:
- Intellisense (vorschlagen der nächsten möglichen Schlüsselwörter)
- Direktlink zur Hilfeseite (F1)
- Recorderaufzeichung?

was kann der Editor denn besser als der VBA-Editor?
funktionieren so Sachen wie Farbgestaltung nach Inhalt bzw Schlüsselwörter nach Typ hier besser oder anders als im original-.Editor?
Antworten Top
#5
@ws-53 

Das Thema ist der VB-Editor, nichts anderes.
Ein Text-editor enthält kein 'intellisense' usw. (Daniel hat's schon erwähnt)
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#6
Der VBA-Editor wird ja auch seit ca. 30(!) Jahren nicht mehr weiterentwickelt.
Ich komme mit den (wenigen) Macken gut klar.
Außerdem lässt er sich ja "pimpen":
Ich nenne mal die MZ-Tools oder Rubberduck.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#7
Hallo,

omg - ich wollte eigentlich gar keine Diskussion lostreten, sondern nur für Interessierte einen Tipp hinterlassen. Ich bin weder Entwickler des oder der Tools noch bin ich in irgendeiner Form an der Vermarktung beteiligt.

Ich verstehe die Möglichkeiten der vorgestellten Arbeitsumgebung als Ergänzung, nicht unbedingt als Ersatz zum VBA-Editor. Dabei sehe ich folgende Vorteile des VS Code Editors gegenüber dem VBA-Editor:

- Syntaxhervorhebung,
- Autovervollständigung (Intellisense)
- Code-Faltung
- Multi-Cursor-Bearbeitung
- leistungsstarke Suche
- Erweiterungen/Plugins (Linting, Formatierung, Snippets, Integration mit Git)
- Versionskontrolle
- anpassbare Tastenkombinationen
- Bessere Navigation: Outline-Ansicht, Minimap, Sprung zu Definitionen/Referenzen
- Command Palette oder Quick Commands
- Aufgabenautomatisierung

Mir gefällt aber vor allem die Unterstützung von CoPilot, der ganze Code-Blöcke erstellen und anpassen kann. Die Verwendung von KI ist sicherlich Ansichtssache, da möchte ich auch keine Diskussion lostreten, darum die Formulierung "mir gefällt".

@Ralf A
Natürlich kann ich VBA-Code auch mit einem Texteditor schreiben, aber damit wird er ja nicht in Excel überführt. Genau das funktioniert mit dem vorgestellten Tool bei jedem Speichern. VS ist nicht gleich VS Code.
Umständlich finde ich das Ganze übrigens nicht: eine einzige Datei aufrufen (keine Installation), zu Beginn einer Sitzung zwei Prompts eingeben und dann mit jedem Speichern des Text automatisch im VBA Editor verfügbar - einfacher geht es kaum.
Mit Alt-Tab wechsel ich jederzeit zwischen VBA-Umgebung und VS Code. Im VBA-Editor steht mir dann der Debugger und die Hilfe zur Verfügung.

@slowboarder
- Intellisense ja, mit Co-Pilot aber viel bessere und mächtigere Unterstützung
- Direktlink zu Hilfeseiten: nein, aber ich kann das ja jederzeit im VBA-Editor (Alt-Tab).
- Recorderaufzeichung: nein, aber s.o.

@RPP63
Ja, MZ-Tools und Rubberduck habe ich auch installiert.

Noch einmal: Mein Tipp ist für die, die mit dem VS Code-Editor arbeiten, seine Vorzüge kennen und vielleicht wie ich eine Möglichkeit gesucht haben, diesen für VBA zu verwenden.
Herzliche Grüße aus dem Rheinland
Jörg

[Windows 10, Microsoft 365]
[-] Folgende(r) 1 Nutzer sagt Danke an LuckyJoe für diesen Beitrag:
  • knobbi38
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste