2008-09-22 8 views

Répondre

9

Office VSTO offre beaucoup de fonctionnalités supplémentaires sur Office VBA, et même si je ne crois pas que Microsoft a signalé qu'il va mettre fin à VBA (en fait, they've said explicitly qu'il sera au moins jusqu'à Office 14; Office 2007 = Office 12), je pense qu'il vaut la peine de déployer vos applications sur VSTO pour profiter de la flexibilité et de la puissance supplémentaires. En fait, je ne pense pas que la dépréciation de VBA serait faisable, car une bonne partie de la programmation Office a lieu au niveau macro par les utilisateurs professionnels et je ne pense pas que cela va disparaître de sitôt. Ces gens n'ont généralement pas accès à un IDE compatible VSTO.

+2

Soit un avertissement que Office 14 = Office 12 +1 (il n'y aura pas de 13). –

2

Voici un comment from Microsoft concernant le futur support VBA. En un mot, il ne s'en va pas sur les versions Windows d'Office (mais est abandonné pour les versions Mac).

+0

Bon lien. Merci. Facilitera les inquiétudes de certains de mes clients à lire cela. – Taptronic

5

Microsoft a déclaré que VBA will be supported aller de l'avant pour l'avenir prévisible, 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 dans un mode virtuel 32 bits hors processus. Donc, si vous planifiez une nouvelle application utilisant Office en tant que plate-forme, VSTO est définitivement le chemin à parcourir, mais vous ne devriez pas trop vous soucier du support existant. Comme le souligne @cori, ce serait un gros pas de marketing pour MS de simplement retirer le support et casser autant de logiciels existants.

+0

Je n'ai pas considéré les ramifications de commercialisation. Logique. – Taptronic

+0

Bien qu'ils l'aient fait sortir de Mac Office, ils le remettent dans la prochaine version - apparemment, ils voulaient sortir une version Intel d'Office Mac, et VBA a été coupé pour le temps; c'est prétendument la priorité n ° 1 pour le prochain Mac Office. –

+0

vous pouvez utiliser applescript –

2

VBA est un long chemin d'être déprécié, 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, VBA et C XLL (et VB6 !!) continuent d'être les outils de choix. Les liens .NET actuels sont lents et n'offrent aucun gain de productivité. Les outils tiers tels que ExcelDNA soulagent un peu la douleur mais de toute évidence, la base de code non gérée basée sur C (et basée sur l'assembleur) d'Office ne s'installe pas facilement avec .NET.

7

VSTO a de nouvelles fonctionnalités, mais présente également un certain nombre de défauts majeurs par rapport à VBA. D'une part, la sécurité d'accès au code peut rendre difficile le déploiement d'applications VSTO (c'est être poli). D'autre part, l'environnement de développement VSTO est loin d'être aussi accessible aux développeurs "Power User" que VBA. Par exemple, aucun enregistreur de macros pour vous aider à démarrer.

Et un grand point culminant est que .NET interop avec des objets COM hors processus ne fonctionne pas bien. Par exemple, si vous souhaitez manipuler d'autres applications Office (Word, PowerPoint, Outlook) à partir d'une application VSTO Excel, vous trouverez plusieurs copies de ces applications en arrière-plan, pour les raisons décrites dans this KB article. Tout cela couplé à l'énorme investissement dans les applications VBA existantes signifie que VBA ne disparaîtra pas de sitôt.

2

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

Mais le plus important de tous; VSTO enlève la douleur d'écrire VBA.

3

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, donc l'IDE VS serait intégré pour VSTO) depuis .NET a été publié pour la première fois. Compte tenu de la quantité de codage utilisée - et étant donné que cela ne produirait aucune fonctionnalité qui serait visible pour les utilisateurs - je doute fort que cela soit en haut de la liste de priorités de Microsoft. Je peux imaginer qu'ils superposent un ensemble d'objets de code managé au-dessus de la base de code existante (tout comme Joel Spolsky a superposé un ensemble d'objets COM sur le code C existant lors de la mise en place de VBA dans Excel) et un nouvel IDE en tant que défaut, tout en cachant l'ancien. Même cela serait un exercice majeur (imaginez l'écriture de l'enregistreur de macro!). Bien sûr, cela ferait de .NET un pré-requis pour Office, que l'équipe du Bureau n'acceptera que sous la menace d'une arme. Bien sûr, Excel ne prend jamais en charge les macros Excel 4, et Word a toujours l'objet WordBasic Automation pour prendre en charge les macros Word 6, il y a trop de code hérité à soutenir - et personne n'a utilisé l'un ou l'autre de ces modèles de codage en une décennie. Si jamais Microsoft mettait un environnement .NET dans Office (ce qui, à vrai dire, je doute qu'il arrivera jamais), alors ils pourraient cesser d'ajouter la prise en charge de VBA pour les nouvelles fonctionnalités Office. C'est le plus proche qu'ils vont obtenir d'interrompre VBA.

+1

Les macros Excel 4 ne fonctionnent pas correctement dans toutes les instances, et des fonctionnalités telles que les feuilles de dialogue ont été complètement supprimées. Tandis que votre opinion est bien réfléchie il n'y a absolument aucune direction de MSFT pour indiquer que vous avez raison. –

+0

@Anonymous Type True, les macros XL4 sont en voie de disparition. Excel 5 a été publié en 1993 et ​​les macros XL4 ont commencé à casser en 2007, soit 14 ans. Je suppose que sur une série de temps similaire pour VBA finissant par se briser. Et c'est à partir de quand ils mettent en place un remplacement - qu'ils n'ont même pas annoncé l'intention de faire encore! –

+1

oui vous avez raison, le problème est qu'il n'y a pas de direction stratégique à long terme à ce sujet. Il semble (en lisant entre les lignes) que leur préférence soit de l'écarter. Mais nous savons tous les deux de l'exp de l'industrie. que le volume de cisaillement des lignes de code Excel VBA (entre autres VBA) rendra la conversion aux solutions C# VSTO (et autres types de solutions) prohibitive en raison de la nature inexacte de la conversion et du fait que vous ne pouvez pas toujours faire la conversion chaque ligne de code. –

Questions connexes