Würdet ihr für Automatisierung in Excel eher VBA oder Python bevorzugen?
Nach meiner Erfahrung ist Python etwas sicherer, und mit VBA habe ich mir schon einmal Excel zerschossen. Welche Erfahrungen habt ihr gemacht?
3 Antworten
Python ist zweifellos zukunftssicherer als VBA. Während VBA zwar für schnelle, kleine Automatisierungen in Excel geeignet ist, ist Python deutlich leistungsfähiger und vielseitiger. Mit Python lassen sich robuste, sichere und wiederverwendbare Automatisierungen erstellen, etwas, das VBA oft nicht in gleichem Maße bieten kann.
Darüber hinaus hat VBA in der modernen Softwareentwicklung stark an Bedeutung verloren. Heutzutage wird es nur noch selten verwendet, da es im Vergleich zu moderneren Technologien wie Python, Office Scripts oder Power Automate veraltet ist.
Microsoft selbst hat die Weiterentwicklung von VBA eingestellt. Es gibt keine neuen Funktionen oder Updates, sondern lediglich Sicherheits-Patches und Bugfixes. Hinzu kommt, dass VBA ausschließlich in der Desktop-Version von Office funktioniert. Auf MacOS gibt es zahlreiche Einschränkungen, und in der Online-Version von Office (Microsoft 365) wird VBA überhaupt nicht unterstützt.
Meiner Meinung nach ist es nur eine Frage der Zeit, bis der Support für VBA vollständig eingestellt wird, da es einfach nicht mehr den Anforderungen an moderne Automatisierungslösungen entspricht.
Also ist es wenig sinnvoll, da noch Zeit ins Lernen zu investieren. Danke.
VBA war meiner Erfahrung nach nie wirklich praxisrelevant. Es war eine Spielwiese, maximal für ein paar Schulexperimente oder wenn man sich privat mit dem Objektmodell beschäftigen wollte.
Es war schon seit langem immer besser, Excel nicht intrinsisch zu automatisieren, sondern über Schnittstellen von außen anzusprechen.
Das Hauptmanko von VBA ist die schlechte Verteilbarkeit. Sicherheitsrichtlinien und zum Schluss eigene Dateiendungen waren Steine, die in den Weg geworfen wurden (auch wenn sie ihre Berechtigung haben). Dann kopiert man das File mit den Makros irgendwo hin oder schickt es an 10 Mailempfänger, die damit weiterarbeiten (wenn es nicht als Maleware erkannt und gelöscht wird). Du erkennst einen Fehler oder willst das Makro ausbauen. Was machst du dann? Was ist mit den gepflegten Daten der Mailempfänger?
Was macht ein Unternehmen, wenn der VBA-Experte das Unternehmen verlässt?
Grundsätzlich würde ich Excel versuchen, möglichst wenig zu steuern. Am besten ist, die Logik vorzulagern und Excel(vorlagen) nur noch mit Daten zu füllen. In den Vorlagen sollten die Formatierungen schon definiert sein.
Ich hab jetzt erst gesehen, dass Python in Excel eingeführt wird. Hab direkt mal auf Aktualisieren geklickt. Wird mir aber komischerweise trotzdem nicht angezeigt, obwohl ich Business-User bin und im Insiderchannel bin.
Von dem, was ich im Internet finden konnte, sieht es auf den ersten Blick aber sehr spannend aus, vor allem, weil man Python-Scripts auf einzelne Zellen anwenden kann und als Rückgabe nicht nur Textwerte, sondern auch Python-Objekte möglich sind, mit denen man dann weiterrechnen kann.
VBA hat ein paar Probleme, die die Verwendung ziemlich einschränken.
- Man kann in der Regel keine Office-Dateien mit VBA-Code per Mail verschicken, weil die Dateien als Spam erkannt werden.
- VBA funktioniert nur in den lokalen Installationen der Office-Programme, aber nicht in den Web-Versionen
- Der VBA-Editor hat nur eine sehr einfache Code-Vervollständigung und keine Dokumentationsfunktion (wie z.B. Javadoc oder die XML-Docs in C#), die bei modernen Programmiersprachen die Entwicklung erleichtern.
- Man kann seine Module nicht in einer Ordnerstruktur sortieren
- Man kann keine Versionsverwaltung mit Git machen (wobei das bei bei den Python-Formeln wahrscheinlich auch nicht gehen wird)
Das habe ich tatsächlich noch nie geschafft, obwohl ich jahrelang beruflich Anwendungen in VBA (MS Access) entwickelt hab. Es gab dafür aber andere Probleme. Die Formulare haben mit der Zeit immer länger gebraucht, bis sie sich bearbeiten ließen (bzw. bei jedem Klick auf ein Steuerelement musste man erstmal eine Minute warten, bis man es bearbeiten konnte), wenn die Dateigröße über 2GB gewachsen ist, hat die Datenbank nicht mehr funktioniert und man musste hoffen, dass beim komprimieren keine Daten verloren gehen, und (ziemlich selten) hat das Programm plötzlich merkwürdige Fehlermeldungen ausgegeben, und man musste mit einem undokumentierten Befehlszeilenparameter den kompilierten Code entfernen, damit man es wieder neu kompilieren lassen konnte.
Verwendest du inzwischen auch Chatbots zum Programmieren? Ich finde die Modelle O1 und O1 Mini bei ChatGPT echt gut. Man muss halt klare Anweisungen geben und zwischendurch auch manchmal völlig umdenken, wenn die KI nicht weiterkommt.
Wo kann man denn da verschiedene Modelle auswählen? Ich hab bisher nur ein bisschen damit rumprobiert. Es ist gut geeignet, um erstmal eine Basis aufzubauen und den groben Schreibkram zu erledigen, aber das Fine-Tuning muss man trotzdem noch per Hand machen
Bei ChatGPT kannst du die Version in der ComboBox oben links auswählen. Es gibt inzwischen sechs Modelle, und du kannst unzählige Erweiterungen hinzufügen, wie Python, DesignerGPT, ExcelCreator und viele weitere. Anfangs war ich auch skeptisch, aber mittlerweile nutze ich es als Entwickler täglich für kleinere Aufgaben. Ich kann dir nur wärmstens empfehlen, es dir einmal anzuschauen. Es hat mir schon oft bei Bugfixes geholfen, bei denen ich nicht weiterkam.
Auf jeden Fall, ich finde die Abo Kosten sind geschenkt. Ich bin ein Büromensch mit grundlegenden Programmierkenntnissen, und das hat mir unglaublich viel geholfen. Natürlich stoße ich immer wieder an meine Grenzen und muss dann halt etwas dazulernen. Dadurch komme ich wieder weiter. Es ist aber absolut faszinierend, was ich als Nicht-Programmierer damit schon erreichen kann.
Wenn man Entwickler ist wie du, dann geht das wahrscheinlich noch weit darüber hinaus.
VBA wird nur aus Gründen der Abwärtskompatibilität am Leben gehalten und kaum weiterentwickelt.
Ich persönlich kenne mich schon recht gut in VBA aus und werde, wenn überhaupt, erst recht spät umsatteln.
Neulingen würde ich immer zu Alternativen raten, wenn es sie gibt und offiziell sind. Das ist eine bessere Investition in die Zukunft.
Und je mehr Fragen zur Nicht-VBA-Automatisierung kommen, desto größer der Anreiz für mich, mich mit den Alternativen auseinander zu setzen.
Dankeschön. Ich habe mir mit VBA tatsächlich mal Office komplett zerschossen, sodass nur ein komplettes Aufsetzen des Systems geholfen hat. Seitdem mache ich eher was mit Python, da ist es mir noch nie passiert.