Microsoft mag VBA in Microsoft Office nicht und möchte es loswerden (ich bin mir nie ganz sicher warum). Sie sind jetzt auf ihrem zweiten Bissen dieser (unverdaulichen) Kirsche. Die beiden Bisse sind:

Bite Notes
Visual Studio Tools for Office VSTO wurde vor einigen Jahren eingeführt, und wir kündigten stolz einen Kurs an, in dem wir glaubten, dass dies es den Menschen schließlich ermöglichen würde, Anwendungen auf Basis von Microsoft Office zu entwickeln. Wir haben nie eine einzige Anfrage zu diesem Kurs erhalten, und es ist nie gelaufen.
JavaScript für Office Office-js wurde in den letzten Jahren schrittweise verbessert. Das große Verkaufsargument ist, dass VBA nur für Microsoft Office unter Windows oder Mac funktioniert, JavaScript jedoch für Excel-Versionen, die im Web, auf Ihrem Telefon oder Tablet ausgeführt werden.

Also, was ist an JavaScript für Office nicht zu mögen? Viel, wie sich herausstellt. Dieser Blog listet 3 wirklich gute Gründe auf, JavaScript für Office nicht zu lernen, es sei denn, Sie müssen unbedingt.

Im Interesse der vollständigen Offenlegung kann ich einen Grund sehen, warum Sie JavaScript für MS Office lernen möchten: Es wird in OneNote unterstützt, was VBA nicht ist.

Grund 1 – Einrichtungs- und Bereitstellungsaufwand

Möchten Sie ein Programm in VBA in Excel schreiben? Hier sind die Anweisungen:

  1. Öffnen Sie Excel.
  2. Drücken Sie Alt + F11.
  3. Starten Sie die Codierung.
  4. Führen Sie Ihre Makros aus, um sie zu testen, indem Sie F5 drücken.
  5. Speichern Sie Ihre Arbeitsmappe als makrofähige Datei.
  6. Schick es in die Welt hinaus!

Möchten Sie in JavaScript für MS Office entwickeln? Hier sind die (vereinfachten) Anweisungen:

Was Sie brauchen Hinweise
Eine Entwicklungsumgebung Wenn Sie ein Microsoft-Entwickler sind, ist es sinnvoll, Visual Studio als IDE (Integrierte Entwicklungsumgebung) zu verwenden. Die Community Edition ist kostenlos erhältlich, obwohl Sie den Segen Ihrer IT-Abteilung einholen müssen, um diese zu installieren.
Knoten.js Sie können entweder JavaScript oder Microsofts TypeScript-Sprache verwenden, um Ihre Office-Add-Ins zu erstellen, aber für beide müssen Sie dieses Framework von Dateien installieren, damit Sie Ihre Programme erstellen können.
Yeoman Generator Dies ist ein bisschen wie ein Assistent, mit dem Sie Office-Add-Ins einfacher erstellen können.

Also habe ich versucht, dies zu tun. Am Ende musste ich ein Programm über meine Befehlszeile ausführen, das Unmengen von Nachrichten erzeugte, bevor es schließlich hängen blieb.

Selbst wenn Sie das oben Genannte installiert haben, haben Sie noch einen langen Weg vor sich, wie dieser falsch benannte MicrosoftQuick Start Guide zeigt. Und lassen Sie mich nicht damit beginnen, Ihre fertigen Apps zu verpacken und bereitzustellen…

Grund 2 – Die Sprache ist härter

Ich programmiere seit fast 30 Jahren in VBA (!), und in C # und JavaScript für mehr als 5. Aber ich bevorzuge die VB-Schnittstelle und habe einen Artikel über Simple-Talkzu diesem Effekt geschrieben (bis heute hatte dies 460.000 Aufrufe und 2.700 Kommentare, meist kritisch!).

Es gibt zwei Gründe, warum es schwieriger ist, in JavaScript zu programmieren als in VBA:

  1. Es ist weniger wie Englisch.
  2. Sie können JavaScript-Makros nicht wie bei VBA in Excel oder Word aufzeichnen.

Wenn Sie ein erfahrener Entwickler sind, gibt es viel zu bemängeln, wie in diesem Artikel zusammengefasst, aber die überwiegende Mehrheit der VBA-Benutzer wird nie wissen müssen, was Klassen, Delegaten und Lambda-Funktionen sind.

Grund 3 – JavaScript ist asynchron, aber VBA wird interpretiert

Zur Vereinfachung:

  • Wenn Sie VBA anweisen, A und B auszuführen, wartet es, bis A abgeschlossen ist, bevor es mit B beginnt.
  • Wenn Sie JavaScript anweisen, A und B auszuführen, sendet es Anforderungen (sie werden Versprechen genannt), sodass A und B beide parallel ausgeführt werden können.

Sicherlich ist dann die JavaScript-Methode besser?

Programmaufgaben

Da die JavaScript-Methode Aufgaben parallel ausführt, wird sie schneller beendet als das VBA-Äquivalent.

Aber … versuchen Sie, mit dieser Methode einen Kuchen zuzubereiten. Die grundlegenden Anweisungen sind:

  1. Butter/Margarine und Zucker eincremen.
  2. Eier untermischen.
  3. Mehl und Backpulver untermischen.
  4. Backen.
  5. Dekorieren und servieren.

Stellen Sie sich nun die JavaScript-Version vor, in der alle Aufgaben gleichzeitig beginnen und nicht darauf gewartet wird, dass eine Aufgabe beendet wird, bevor die nächste beginnt. Wenn Sie Glück haben, erhalten Sie Folgendes:

Bad cake

Entschuldigung, wenn dies Ihr Bild war, das ich von Google Images aufgenommen habe. Ich hoffe, der Geburtstag ist gut verlaufen. Realistisch gesehen werden wir von unserem Prozess jedoch nichts so Erkennbares wie einen Kuchen bekommen.

Fast jedes Makro, das Sie in Excel schreiben, erfordert, dass die Schritte in einer bestimmten Reihenfolge ausgeführt werden. Ein typischer Algorithmus könnte sein:

  1. Gehe zur letzten nicht leeren Zelle in einer Spalte.
  2. Kopieren Sie den Wert.
  3. Fügen Sie es in die Zelle darunter ein.

Um so etwas in JavaScript zu schreiben, müssen Sie immer wieder überprüfen, ob ein Versprechen erfüllt wurde, bevor Sie das nächste anfordern (obwohl Sie für dieses einfache Beispiel die drei Anweisungen in einer einzigen Routine kombinieren könnten).

Ich brauche ungefähr 5 mal länger in JavaScript für Websites zu codieren als in C #. Es gibt ein paar Gründe dafür, aber der Hauptgrund sind Fehler, die auftreten, wenn ich davon ausgehe, dass Prozess A beendet ist, obwohl er tatsächlich noch läuft.

Wenn Sie also nicht bereits ein Vollzeit-JavaScript- oder TypeScript-Webentwickler sind, wäre mein Rat, Office-js zu ignorieren, bis Microsoft VBA heruntergefahren hat, was ich in den nächsten zehn Jahren nicht sehe.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.