Différences entre les scripts Office et les macros VBA

Les scripts Office et les macros VBA ont beaucoup en commun. Ils permettent aux utilisateurs d’automatiser des solutions via un enregistreur d’actions facile à utiliser et autorisent les modifications de ces enregistrements. Les deux frameworks sont conçus pour permettre aux personnes qui ne se considèrent pas comme des programmeurs de créer de petits programmes dans Excel.

La différence fondamentale réside dans le fait que les macros VBA sont développées pour les solutions de bureau et que les scripts Office sont conçus pour des solutions cloud sécurisées, multiplateformes.

Diagramme à quatre quadrants montrant les domaines d’intérêt pour différentes solutions d’extensibilité Office. Les scripts Office et les macros VBA sont conçus pour aider les utilisateurs finaux à créer des solutions. Les scripts Office sont conçus pour les expériences multiplateformes et la collaboration, tandis que VBA est destiné au bureau.

Cet article décrit les différences main entre les macros VBA (ainsi que VBA en général) et les scripts Office. Étant donné que les scripts Office sont disponibles uniquement pour Excel, il s’agit du seul hôte abordé ici.

Plateforme et écosystème

Le tableau suivant indique les fonctionnalités prises en charge par les plateformes et les produits.

Excel sur le web Excel pour Windows Excel pour Mac Excel pour iOS Autres produits Office Power Automate
Scripts Office Oui Oui Oui Non Non Oui
Enregistreur d’actions de scripts Office Oui Oui Oui Non Non Non
Macros VBA Non Oui Oui Non Oui Non
Compléments Office Oui Oui Oui Oui Oui Non
Compléments COM Non Oui Oui Non Oui Non

VBA est conçu pour être centré sur le bureau. VBA peut interagir avec le bureau d’un utilisateur pour se connecter à des technologies similaires, telles que COM et OLE. Toutefois, VBA n’a aucun moyen pratique d’appeler sur Internet. Les scripts Office utilisent un runtime universel pour JavaScript. Cela offre un comportement et une accessibilité cohérents, quelle que soit la machine utilisée pour exécuter le script. Ils peuvent également effectuer des appels à un ensemble limité de services web.

Les utilisateurs ont besoin d’une licence d’entreprise ou d’enseignement pour utiliser ou créer des scripts Office. Pour obtenir la liste complète des licences prises en charge, consultez Prise en charge de la plateforme. VBA est intégré aux versions de bureau d’Excel et ne nécessite aucune licence spéciale.

Sécurité

Les macros VBA ont la même autorisation de sécurité qu’Excel. Cela leur donne un accès complet à votre bureau. Les scripts Office ont uniquement accès au classeur, et non à l’ordinateur hébergeant le classeur. En outre, aucun jeton d’authentification JavaScript ne peut être partagé avec des scripts. Cela signifie que le script n’a pas les jetons de l’utilisateur connecté et qu’il n’existe aucune capacité d’API pour la connexion à un service externe. Il ne peut donc pas utiliser les jetons existants pour effectuer des appels externes au nom de l’utilisateur.

Les administrateurs ont trois options pour les macros VBA : autoriser toutes les macros sur le locataire, n’autoriser aucune macro sur le locataire ou autoriser uniquement les macros avec des certificats signés. Ce manque de granularité rend difficile l’isolement d’un seul mauvais acteur. Actuellement, les scripts Office peuvent être désactivés pour un locataire entier, activés pour un locataire entier ou activés pour un groupe d’utilisateurs dans un locataire. Les administrateurs contrôlent également qui peut partager des scripts avec d’autres personnes et qui peut utiliser des scripts dans Power Automate.

Couverture

Actuellement, VBA offre une couverture plus complète des fonctionnalités Excel, en particulier celles disponibles sur le client de bureau. Les scripts Office couvrent presque tous les scénarios de Excel sur le Web. En outre, à mesure que de nouvelles fonctionnalités sont disponibles sur le web, les scripts Office les prendront en charge pour l’enregistreur d’actions et les API JavaScript.

Les scripts Office ne prennent pas en charge les événements de niveau Excel. Les scripts ne sont exécutés que lorsqu’un utilisateur les démarre manuellement ou lorsqu’un flux Power Automate appelle le script.

Power Automate

VBA n’a pas de connecteur Power Automate. Tous les scénarios VBA pris en charge impliquent qu’un utilisateur assiste à l’exécution de la macro.

Les scripts Office peuvent être exécutés via Power Automate. Votre classeur peut être mis à jour via des flux planifiés ou pilotés par les événements, ce qui vous permet d’automatiser les workflows sans même ouvrir Excel. Essayez le tutoriel : Mettre à jour une feuille de calcul à partir d’un flux Power Automate pour commencer à en savoir plus sur Power Automate. Vous pouvez également case activée l’exemple de rappels de tâches automatisés pour voir les scripts Office connectés à Teams via Power Automate dans un scénario réel.

Voir aussi