Die Firma, in der ich arbeite, wird auf Excel-Blättern geführt. Einige dieser Blätter enthalten eine Form von eingebettetem VBA-Code. Ich mache einige Wartungsarbeiten an ihnen, aber es fühlt sich wirklich altmodisch an.
Was passiert mit Office VBA?
Warum hat Microsoft keine eingebettete .NET-Makrosprache für Office veröffentlicht?
Kurze Antwort: Ihnen geht es wahrscheinlich schon eine Weile gut.
Lange Antwort: VB6 (was VBA wirklich ist) ist so ziemlich eine tote, nicht unterstützte Sprache, die letzten zehn Jahre mit einer IDE aus dem gleichen Zeitraum aktualisiert wurde. Es ist nur noch verfügbar, da es in Office eingebettet ist und es Millionen von Office-Apps gibt, die nicht mehr funktionieren, wenn VBA entfernt oder geändert wurde. Ganz zu schweigen von Millionen von extrem verärgerten Benutzern.
Wie geht es weiter? Kann Office in verwaltetem Code erneut implementiert werden? Will Microsoft das überhaupt machen? Werden sie einen noch größeren Abwärtskompatibilitätsbruch als die Multifunktionsleiste machen und einfach die Idee der Makroaufzeichnung und des interpretierten eingebetteten Codes verwerfen? Ich kann einfach nicht sehen, dass meine Benutzer in Visual Studio VB.NET verwenden, indem sie COM Interop und so weiter verwenden.
Wenn ich Geld auf ein Ergebnis setzen müsste (und ich würde selbst dann nicht viel setzen wollen), würde ich mir die Dynamic Language Runtime und die Tatsache, dass mehrere Sprachen in verschiedenen Bereitschaftszuständen sind, darauf zu laufen. Angenommen, der DLR sollte mit einem geeigneten Ersatz oder Wrapper für das COM-Modell der Office-Anwendung die VB6-Laufzeit ersetzen. Angenommen, VBA wurde als DLR-Sprache implementiert. Nun wird Legacy-VBA weiter laufen, nur auf einem anderen (modernen, unterstützten) Interpreter und zusätzlich können wir Excel-Makros in Python, Ruby oder jeder anderen DLR-Sprache programmieren.
Aber das ist nur meine beste Vermutung - ich habe keine Ahnung, ob es in der Nähe ist oder nicht. Ich würde sicherlich gerne in der Lage sein, Excel-Makros in Ruby zu programmieren.
Sie sind VBA-Unterstützung für die nächste Version von Office für den Mac Ich vermute, dass es für eine Weile da sein wird.
Ich würde sagen, es ist Zeit für Sie, in .NET einzutauchen.
Sie können .NET-Bibliotheken aus Excel aufrufen.
Nun, ich bin ein erfahrener .NET Programmierer. Ich habe Tools for Office ausprobiert, was sehr mühsam ist und es erfordert, dass Sie Assemblys verteilen (LOL). Es gibt keine Möglichkeit, dass Finance oder Delivery das nutzt. Wir hatten ein gutes Lachen, bevor wir die Deinstallation starteten.
Wir haben Google Docs ausprobiert, das überraschend flexibel war, aber immer noch nicht so leistungsstark wie Excel-Makros. Microsoft stagniert seit dem Jahr 2000, und Google bewegt sich schnell, so dass die Antworten in ein paar Jahren anders sein könnten. VBA selbst ist heute weniger wegen des ganzen Sicherheits-Unsinns mächtig.
Am Ende habe ich noch eine Schaltfläche in ihrem Blatt, um zu tun, was sie wollen, und sie können kleinere Änderungen am Code vornehmen, wenn sie möchten. Es ist seltsam, dass VBA der Weg für etwas ist, das ich vermute, dass alle Finanzabteilungen in der Welt verwenden.
Ich bin gestern auf dieselbe Linie gestoßen. Was für ein Zufall. Plötzlich suchte der Chef meiner Teilzeitstelle nach einer Excel-Anwendung, die ich vor drei Jahren erstellt hatte (er verließ das Unternehmen 2007 und kam als Teilzeitbeschäftigter zurück, um meinen Vollzeitjob zu erweitern). Ich erinnere mich, dass ich das zu einer MS Access 2003-Anwendung konvertiert hatte; aber die App muss aktualisiert werden, um neuere Anforderungen zu erfüllen. Rate mal was, ich glaube ich habe VBA schon vergessen. Es ist nicht der richtige Zeitpunkt, um von Grund auf neu zu lernen. Ich gehe mit C # 2.0 / 3.0 weiter. Die Neuentwicklung dieser MS Access 2003-Anwendung mit C # 3.0 wird eine großartige Lernerfahrung sein, da bin ich mir sicher!
@IainMH hat recht ... "es ist Zeit für dich, in .NET einzutauchen"