Unterschiede zwischen Office-Skripts und VBA-Makros

Office-Skripts und VBA-Makros haben viele Gemeinsamkeiten. Beide ermöglichen es Benutzern, Lösungen über einen einfach zu verwendenden Aktionsrekorder zu automatisieren und Bearbeitungen dieser Aufzeichnungen zu ermöglichen. Beide Frameworks sollen Personen, die sich selbst nicht als Programmierer betrachten, ermöglichen, kleine Programme in Excel zu erstellen.

Der grundlegende Unterschied besteht darin, dass VBA-Makros für Desktoplösungen und Office-Skripts für sichere, plattformübergreifende, cloudbasierte Lösungen entwickelt werden.

Ein Diagramm mit vier Quadranten, das die Schwerpunktbereiche für verschiedene Office-Erweiterbarkeitslösungen zeigt. Sowohl Office-Skripts als auch VBA-Makros sollen Endbenutzern beim Erstellen von Lösungen helfen. Office-Skripts sind für plattformübergreifende Umgebungen und Zusammenarbeit entwickelt, während VBA für den Desktop vorgesehen ist.

In diesem Artikel werden die Standard Unterschiede zwischen VBA-Makros (und VBA im Allgemeinen) und Office-Skripts beschrieben. Da Office-Skripts nur für Excel verfügbar sind, ist dies der einzige Host, der hier erläutert wird.

Plattform und Ökosystem

Die folgende Tabelle zeigt, welche Features von welchen Plattformen und Produkten unterstützt werden.

Excel im Web Excel für Windows Excel für Mac Excel für iOS Weitere Office-Produkte Power Automate
Office-Skripts Ja Ja Ja Nein Nein Ja
Office-Skript-Aktionsaufzeichnung Ja Ja Ja Nein Nein Nein
VBA-Makros Nein Ja Ja Nein Ja Nein
Office-Add-Ins Ja Ja Ja Ja Ja Nein
COM-Add-Ins Nein Ja Ja Nein Ja Nein

VBA ist desktopzentriert. VBA kann mit dem Desktop eines Benutzers interagieren, um eine Verbindung mit ähnlichen Technologien wie COM und OLE herzustellen. VBA bietet jedoch keine bequeme Möglichkeit, das Internet zu aufrufen. Office-Skripts verwenden eine universelle Runtime für JavaScript. Dies sorgt für konsistentes Verhalten und Barrierefreiheit, unabhängig vom Computer, der zum Ausführen des Skripts verwendet wird. Sie können auch Aufrufe an einen begrenzten Satz von Webdiensten senden.

Benutzer benötigen eine Unternehmens- oder Bildungslizenz, um Office-Skripts verwenden oder erstellen zu können. Eine vollständige Liste der unterstützten Lizenzen finden Sie unter Plattformunterstützung. VBA ist in die Desktopversionen von Excel integriert und erfordert keine spezielle Lizenzierung.

Sicherheit

VBA-Makros haben die gleiche Sicherheitsfreigabe wie Excel. Dadurch erhalten sie Vollzugriff auf Ihren Desktop. Office-Skripts haben nur Zugriff auf die Arbeitsmappe, nicht auf den Computer, auf dem die Arbeitsmappe gehostet wird. Darüber hinaus können keine JavaScript-Authentifizierungstoken für Skripts freigegeben werden. Dies bedeutet, dass das Skript weder über die Token des angemeldeten Benutzers noch über API-Funktionen für die Anmeldung bei einem externen Dienst verfügt, sodass vorhandene Token nicht verwendet werden können, um externe Aufrufe im Namen des Benutzers auszuführen.

Administratoren haben drei Optionen für VBA-Makros: Alle Makros auf dem Mandanten zulassen, keine Makros auf dem Mandanten zulassen oder nur Makros mit signierten Zertifikaten zulassen. Dieser Mangel an Granularität macht es schwierig, einen einzelnen schlechten Akteur zu isolieren. Derzeit können Office-Skripts für einen gesamten Mandanten deaktiviert, für einen gesamten Mandanten aktiviert oder für eine Gruppe von Benutzern in einem Mandanten aktiviert sein. Administratoren haben auch die Kontrolle darüber, wer Skripts für andere freigeben kann und wer Skripts in Power Automate verwenden kann.

Abdeckung

Derzeit bietet VBA eine umfassendere Abdeckung der Excel-Features, insbesondere der features, die auf dem Desktopclient verfügbar sind. Office-Skripts decken fast alle Szenarien für Excel im Web ab. Darüber hinaus unterstützen Office-Skripts, sobald neue Features im Web eingeführt werden, diese sowohl für die Action Recorder- als auch für JavaScript-APIs.

Office-Skripts unterstützen keine Ereignisse auf Excel-Ebene. Skripts werden nur ausgeführt, wenn ein Benutzer sie manuell startet oder wenn ein Power Automate-Flow das Skript aufruft.

Power Automate

VBA verfügt nicht über einen Power Automate-Connector. Alle unterstützten VBA-Szenarien umfassen einen Benutzer, der an der Ausführung des Makros beteiligt ist.

Office-Skripts können über Power Automate ausgeführt werden. Ihre Arbeitsmappe kann über geplante oder ereignisgesteuerte Flows aktualisiert werden, sodass Sie Workflows automatisieren können, ohne Excel zu öffnen. Probieren Sie das Tutorial: Aktualisieren einer Kalkulationstabelle aus einem Power Automate-Flow aus , um mehr über Power Automate zu erfahren. Sie können sich auch das Beispiel für automatisierte Aufgabenerinnerungen ansehen, um Office-Skripts zu sehen, die über Power Automate mit Teams in einem realen Szenario verbunden sind.

Siehe auch