Question

Est-ce que VBA va bientôt disparaître, à l’instar de VB6? Ne devrais-je pas développer de nouvelles applications Office avec VBA? Ou devrais-je développer toutes les nouvelles applications Office avec VSTO?

Mise à jour: récemment lu article .

Était-ce utile?

La solution

Office VSTO offre de nombreuses fonctionnalités supplémentaires par rapport à Office VBA et, même si je ne crois pas que Microsoft ait signalé qu'il allait mettre fin à VBA (en fait, ils ont dit explicitement qu'il sera disponible au moins jusqu'à Office 14; Office 2007 = Office 12), je pense que cela vaut la peine de déployer vos applications vers VSTO pour tirer parti de la flexibilité et de la puissance supplémentaires.

En fait, je ne pense pas que la dépréciation de VBA serait réalisable, car une bonne partie de la programmation Office est réalisée au niveau macro par des utilisateurs professionnels et je ne pense pas que cela va disparaître de si tôt. Ces personnes n’ont généralement pas accès à un IDE compatible VSTO.

Autres conseils

VSTO présente de nouvelles fonctionnalités, mais présente également un certain nombre de défauts majeurs par rapport à VBA.

D'une part, Code Access Security peut rendre difficile le déploiement d'applications VSTO (c'est poli).

D'autre part, l'environnement de développement VSTO est loin d'être aussi accessible que le "Power User" développeurs en tant que VBA. Par exemple, aucun enregistreur de macros pour vous aider à démarrer.

Et un gros problème, c’est que l’interopérabilité .NET avec les objets COM en dehors du processus ne fonctionne pas bien. Par exemple, si vous souhaitez manipuler d'autres applications Office (Word, PowerPoint, Outlook) à partir d'une application Excel VSTO, plusieurs copies de ces applications s'exécutent en arrière-plan, pour les raisons décrites dans cet article de la Base de connaissances .

Tout cela, associé à l’énorme investissement dans les applications VBA existantes, signifie que VBA ne disparaîtra pas de si tôt.

Microsoft a déclaré que VBA être pris en charge pour l'avenir, mais ils recommandent également que les nouvelles applications utilisent VSTO.

La dernière version Mac de MS Office ne prend pas en charge VBA et Windows 64 bits l'exécute en mode de traitement 32 bits virtuel. Ainsi, si vous planifiez une nouvelle application utilisant Office comme plate-forme, VSTO est certainement le chemin à parcourir, mais ne vous inquiétez pas trop du support hérité.

Comme @cori le fait remarquer, ce serait un énorme no-no marketing pour MS de simplement retirer de l'assistance et casser autant de logiciels existants.

Microsoft a laissé tomber des allusions à une version de code managé d’Office avec un VSTO intégré (vraisemblablement de la même manière que l’IDE ??VB6 est intégré pour VBA; le VS IDE serait donc intégré pour VSTO) depuis que .NET première sortie.

Etant donné l’importance du codage - et étant donné que cela ne produirait aucune fonctionnalité visible par les utilisateurs - je doute fort que cela figure en bonne place sur la liste des priorités de Microsoft. Je peux imaginer qu'ils superposent un ensemble d'objets de code géré au-dessus de la base de code existante (un peu comme Joel Spolsky superposant un ensemble d'objets COM sur la base de code C existante lors de la mise en place de VBA dans Excel) et lancent un nouvel IDE. par défaut, tout en cachant l'ancien. Même cela serait un exercice majeur (imaginez écrire l’enregistreur de macros!). Bien entendu, cela ferait de .NET une pré-requête pour Office, que l'équipe d'Office n'acceptera que sous la menace d'un pistolet.

Bien entendu, ils ne supprimeront jamais VBA des produits: Excel prend toujours en charge les macros Excel 4, et Word a toujours l'objet WordBasic Automation pour prendre en charge les macros Word 6, et rien ne laisse présager que ces macros ont été supprimées. c’est trop de code hérité à prendre en charge - et personne n’a utilisé l’un ou l’autre de ces modèles de codage depuis une décennie.

Si Microsoft installe un environnement .NET dans Office (ce qui, franchement, je doute de l’arriver), il se peut qu’ils arrêtent d’ajouter la prise en charge de VBA pour les nouvelles fonctionnalités d’Office. C’est ce qui se rapproche le plus de l’arrêt de VBA.

Voici un commentaire de Microsoft concernant la prise en charge future de VBA. En un mot, il ne va pas disparaître sous les versions Windows d’Office (mais est abandonné pour les versions Mac).

VBA est loin d’être amorti. En fait, VBA doit être réintroduit dans la prochaine version d’Office sur le MAC ( http://www.microsoft.com/presspass/press 2008/may08/05-13MacBU2008PR.mspx ).

Pour la plupart des gens sur le terrain, les outils VBA et C XLL (et VB6 !!) restent les outils de choix. Les liaisons .NET actuelles sont lentes et n'offrent aucun gain de productivité. Des outils de troisième partie, tels qu'ExcelDNA, facilitent un peu la tâche, mais il est évident que la base de code non gérée basée sur C (et sur l'assembleur) d'Office n'est pas compatible avec .NET.

Les compléments VBA sont un peu fastidieux à déployer, mais VSTO l'est encore plus. En outre, VSTO implique un peu de temps système car il doit démarrer le CLR avant d’exécuter votre code.

Mais le plus important de tous; VSTO enlève la peine d’écrire en VBA.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top