Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Zunkunft von Excel /VBA
#1
Schönen guten Abend zusammen,

ich habe in letzter Zeit immer mehr gelesen, dass Excel-VBA "auf das Abstellgleis" gestellt wird aufgrund vielfältiger Gründe. Von Microsoft konnte ich selber keine stichhaltigen Gründe erfahren bzw. ergooglen (habe einen Artikel aus 2020 gefunden in dem stand, Excel-VBA wäre kurz vor dem "Abschuss".

Da ich ein Projekt habe, welches momentan in Excel-VBA noch gut läuft, aber aus gegebenen Gründen der VBA-Abschaltung noch weiter laufen soll würde ich gerne folgende Diskussion anregen:
Welche Programmiersprache wird Eurer Meinung nach Excel-VBA am ehesten ersetzen können?

Es geht mir nicht darum, Excel-VBA den Rücken zu kehren, sondern mehr für die Zukunft gewappnet zu sein und die entsprechende Programmiersprache zu lernen. Momentan steht - meiner Meinung nach - MS Visual Studio - bzw. C# auf der PolePosition was vorallem "eigenständige Softwares" anbelangt im MS-Umfeld.

Mein Projekt sollte relativ rechenstark sein und Eingaben des Users verarbeiten können.
Vielleicht gibt es auch Meinungen, VBA besteht bis ins Nirvana - gerne möchte ich diese Diskussion eröffnen:

Ich persönlich glaube: Excel-VBA wird bis max. 10-20 Jahre seinen Dienst sauber tun, aber wird dann von C# abgelöst, da diese Sprache rlativ einfach von MD verwendet wird.

Wie seht ihr das? Möchte gerne meinen Horizont erweitern.

Danke, liebe Grüsse und schönes WE wünscht
Domi
Antworten Top
#2
Hallo Domi,

MS würde gerne lieber gestern statt heute, dass alles nur noch in der Cloud läuft (bei MS heist die Azure) und niemand mehr irgend etwas lokal speichert oder lokal irgendwelche Programme installiert. Das ist aber Geschäftspolitik und die meisten Nutzer wollen das bisher nicht. Nichts desto trotz gibt es die Web-Office Version und darin läuft schon heute kein VBA mehr, sondern es gibt wohl eine JavaScript Schnittstelle. Das ist bei einer WebAnwendung auch naheliegend.

VBA wird aufgrund der großen Verbreitung jedoch mit Sicherheit nicht von heute auf morgen "abgeschaltet". Vielleicht versucht MS es immer weiter auszuschleichen, sozusagen. Aber solange es eine breite Basis lokaler Installationen gibt, wird es vermutlich auch VBA geben. Eine weitere Sprache, mit der MS für das Office "rumspielt" ist übrigens Python.

Du sprichst von C# und VBCode als Platzhirsche. Da muss ich kurz etwas sortieren. C# ist eine Programmiersprache, ja. Aber sie ist nicht einfach. Sie ist ziemlich ähnlich mit Java, was die Syntax angeht. Was die Mechanismen in der Tiefe angeht, kann ich dazu nix weiter sagen. C# gehört zur .Net Familie. VSCode hingegen ist keine Programmiersprache, sondern eine IDE (Integrated Development Environment oder auf Deutsch, integrierte Entwicklungsumgebung) Also ein Stand Alone Programm, mit dem Software entwickelt werden kann. In Excel gibt es auch eine IDE, in der halt der VBA Code eingetippt wird.

VSCode ist jedoch viel viel mächtiger als die Excel eigene IDE. Damit kann nicht nur in einer Sprache entwickelt werden, sondern in vielen verschiedenen. Der große Unterschied zur IDE in Excel ist jedoch, dass diese den direkten "Anschluss" an Excel als Gastsystem hat. Denn VBA steht ja nicht umsonst für Visual Basic for Applications. VBA ist immer an eine Anwendung gebunden. Sei es Excel, Word oder eines der anderen MS Office Programme, oder an lizenzierende Software, wie Corel Draw oder Auto CAD. Mit VSCode hingegen kann man mit VBA keine Software für Excel entwickeln, weil der gesamte Unterbau der Objekte fehlt, den Excel halt mitbringt. Workbooks, Sheets, Zellen, ...

Nochmal zu "Excel soll aufs Abstellgleis geschoben werden". Ja, mag sein. Ich lese aber auch seit Jahren, dass der PC am sterben ist, weil immer weniger verkauft werden und die Leute denken, ein Tablet tuts genauso. Für viele Anwendungen ist ein Tablet mit Sicherheit die richtige Wahl. Es gibt jedoch Aufgaben, für die ein Desktop PC nach wie vor das richtige Werkzeug ist. Auch das wird sich nicht in den nächsten Jahren plötzlich ändern.

Meine persönliche Einschätzung ist, MS wird JS weiter in das Office integrieren, vielleicht auch Python. Wir werden aber trotzdem noch lange Zeit parallele Ökosysteme haben. Neben den genannten Sprachen wird VBA noch lange weiter bestehen oder zumindest in bestehenden Projekten genutzt werden. Wir kennen das von anderen Sprachen. Vor allem im FinTech Bereich (Banken und Versicherungen) wurde damals vor allem die Programmiersprache Cobol verwendet. Die Sprache ist heute sozusagen tot. Trotzdem gibt es nach wie vor alte Software, die sich nicht mal eben gegen Software auf einem moderneren TechStack austauschen lässt. Das sind einfach große Ökosysteme, deren Schnittstellen untereinander funktionieren. Als Cobol Programmierer kann man heutzutage sehr gutes Geld verdienen, denn es gibt nur noch wenige Vertreter dieser Spezies, die die Sprache wirklich beherrschen.

Du schreibst, Du brauchst ein Rechstarkes System. Die Rechenstärke hängt nicht von einer Programmiersprache ab. Gut, man kann mit Sprachen wie C#, C++, Java, Python, usw. multithreaded programmieren. Also mehrere Berechnungen parallel ausführen, sofern der Algorithmus eine parallele Ausführung zulässt. Das geht in VBA nicht, VBA ist singlethreaded. Aber was die Möglichkeiten der Sprachen angeht, können alle alles, denn alle sind turingvollständig. Nun kann man fragen, wozu gibt es dann unterschiedliche Sprachen und warum werden auch heute immer noch neue entwickelt?

Ich will jetzt nicht zu weit in die Theorie abdriften. Aber auch wenn jede Sprache grundsätzlich alles kann, haben unterschiedliche Sprachen verschiedene Schwerpunkte, auf die sie sozusagen spezialisiert sind. Schon genannt Cobol, womit sich damals am besten Finanzmathematik ausführen lies. C/ C++ ist sehr stark, wenn es um hardwarenahe Programmierung geht. PHP ist vor allem auf String-Manipulationen ausgelegt. Python wird oft als "Wissenschaftssprache" wahrgenommen. Wer was mit KI oder Machine Learning machen will, kommt an Python quasi nicht vorbei. JavaScript ist "die Websprache", die vor allem in den Browsern ausgeführt wird, um Elemente von Internetseiten zu dynamisieren. Mit JS können aber inzwischen auch Stand Alone Programme entwickelt werden. Ein bekanntes Beispiel ist die oben genannte VSCode IDE. Insgesamt werden die Sprachen auch in Dialekte und Generationen eingeteilt. Aber das lassen wir hier mal bleiben.

Wenn es Dir um reine Rechenpower geht, dann wird diese vor allem durch die Hardware zur Verfügung gestellt. Aber natürlich muss eine Software auch so entwickelt sein, dass sie in ihren Algorithmen gute Laufzeiten aufweist. Die Fragen für Dich sind eigentlich erstmal:

Was genau ist Dein Ziel, mit Deiner Software? Brauchst Du unbedingt Excel als Unterbau? Vielleicht verwendet Deine Zielgruppe, die mit den Ergebnissen Deiner Software weiter arbeiten soll, Excel. Aber man kann Excel Arbeitsmappen auch aus anderen Sprachen heraus lesen, schreiben und verändern. Z.B. für Python gibt es ganz gute Bibliotheken dafür. Vielleicht ist auch eine WebAnwendung, die in einem Browser läuft gut geeignet, für das, was Du möchtest. Selbst da kann im Hintergrund auf dem Server eine Sprache wie Python laufen und mit Node.js auch serverseitiges JavaScript.

Das sind so die Dinge, die mir spontan zu Deinem Beitrag einfallen.

Viele Grüße,

Zwenn
[-] Folgende(r) 3 Nutzer sagen Danke an Zwenn für diesen Beitrag:
  • PIVPQ, RPP63, derHoepp
Antworten Top
#3
Moin!
Beim Doppelpass müsste ich jetzt 2,- € ins Phrasenschwein werfen:
Totgesagte leben länger!
Die Diskussion, ob VBA "ausstirbt", gibt es, seit ich in Foren aktiv bin.
Gerade nochmal nachgeschaut:
Man kann auch im aktuellen 365er Betakanal immer noch Excel 4.0-Makrovorlagen (den Vorgänger von VBA) einfügen.
Alleine die Tatsache, dass viele Firmen viel Geld für maßgeschneiderte VBA-Lösungen ausgegeben haben, dürfte dafür sorgen, dass VBA so lange unterstützt wird, wie es Desktop-Versionen gibt.

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
#4
Zitat:Man kann auch im aktuellen 365er Betakanal immer noch Excel 4.0-Makrovorlagen (den Vorgänger von VBA) einfügen.

Noch schimmer ist, habe es gerade noch einmal getestet, dass beim aufzeichnen bedingter Formatierungen ExecuteExcel4Macro-Codezeilen entstehen, die dann aber nicht ausführbar sind.

Code:
Sub Makro1()
    Selection.NumberFormat = "#,##0.00"
    Cells.FormatConditions.Delete
    Columns("A:G").Select
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=ISTZAHL(A1)"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
   
    ExecuteExcel4Macro "(2,1,""#.##0,00"")"
   
    Selection.FormatConditions(1).StopIfTrue = False
End Sub
Antworten Top
#5
In die Zukunft kann ich auch nicht schauen, aber ich setzte irgendwann auf VSTOs, also Office-AddIns, die unter Visual Studio erzeugt werden (und zwischenzeitlich auch totgesagt wurden). Programmiersprache ist entweder C# oder VB mit .Net Framework. Ich habe mich für VB entschieden, da die Portierung vorhandener VBA-Codes wegen der sprachlichen Nähe einfacher ist und ich mich selbst auch schneller einarbeiten konnte.
Ich nutze bei meinen Projekten Excel vornehmlich zur strukturierten Bereitstellung bzw. Ausgabe von Daten und Ergebnissen. Die Performance kann besser sein als bei VBA, wobei solche Aussagen mit Vorsicht zu genießen sind, da abhängig davon, was man und wie man es tut. Multithreading ist nicht inklusive. UDFs sind nicht möglich. 
Die Programmierumgebung ist aber deutlich komfortabler, Code ist besser strukturierbar und Ribbons lassen sich streßfrei und von Intellisense geführt integrieren - um nur ein paar Punkte zu nennen. Updates bestehender Projekte sind ebenfalls einfacher.
Antworten Top
#6
Gute und schlechte Nachrichten für Visual-Basic-.NET-Entwickler | heise online
Microsoft: 'We Do Not Plan to Evolve Visual Basic as a Language' -- Visual Studio Magazine

Hiernach ist VBA seit 2020 am Ende
Microsoft: Excel bringt endlich das Ende von VBA - Golem.de

VBScript lebt auch weiter
Microsoft: VBScript soll aus Windows entfernt werden - Golem.de


Next Microsoft Office will continue to support VBA (betanews.com)
Mit anderen Worten:
Die Zukunft vorherzusagen ist schwierig, wir werden uns ja nicht mal über die Vergangenheit einig. 
05 05 05


Will VBA Die in 2022? Is It Worth Learning? [Inside Scoop] (thespreadsheetguru.com)
Antworten Top


Gehe zu:


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