Pregunta

¿VBA desaparecerá pronto, como lo hizo VB6?¿No debería desarrollar nuevas aplicaciones de Office con VBA?¿O debería desarrollar todas las aplicaciones de Office nuevas con VSTO?

Actualizar:Leí esto recientemente artículo.

¿Fue útil?

Solución

Office VSTO ofrece una gran cantidad de funcionalidad adicional sobre Office VBA, y aunque no creo que Microsoft haya indicado que va a terminar con VBA (de hecho, han dicho explícitamente que estará presente al menos hasta Office 14;Office 2007 = Office 12), creo que vale la pena el esfuerzo de mover sus aplicaciones a VSTO para aprovechar la flexibilidad y potencia adicionales.

De hecho, no creo que desaprobar VBA sea factible, ya que una buena cantidad de programación de Office se lleva a cabo a nivel macro por parte de usuarios empresariales y no creo que eso vaya a desaparecer pronto.Esas personas generalmente no tienen acceso a un IDE compatible con VSTO.

Otros consejos

VSTO tiene nuevas características, pero también tiene una serie de deficiencias importantes en comparación con VBA.

Por un lado, Code Access Security puede dificultar la implementación de aplicaciones VSTO (eso es ser educado).

Por otro lado, el entorno de desarrollo VSTO no es tan accesible para los desarrolladores "usuarios avanzados" como VBA.Por ejemplo, no hay una grabadora de macros para empezar.

Y un gran problema es que la interoperabilidad de .NET con objetos COM fuera de proceso no funciona bien.Por ejemplo, si desea manipular otras aplicaciones de Office (Word, PowerPoint, Outlook) desde una aplicación VSTO de Excel, encontrará varias copias de estas aplicaciones ejecutándose en segundo plano, por los motivos descritos en este artículo de KB.

Todo esto, junto con la enorme inversión en aplicaciones VBA existentes, significa que VBA no desaparecerá pronto.

Microsoft ha declarado que VBA será compatible avanzando en el futuro previsible, pero también recomiendan que las nuevas aplicaciones utilicen VSTO.

La última versión de MS Office para Mac no es compatible con VBA y Windows de 64 bits lo ejecuta en un modo virtual fuera de proceso de 32 bits.Entonces, si está planeando una nueva aplicación utilizando Office como plataforma, VSTO es definitivamente el camino a seguir, pero no deberías preocuparte demasiado por el soporte heredado.

Como señala @cori, sería un gran no-no de marketing para MS simplemente retirar el soporte y romper tanto software existente.

Microsoft ha estado dando pistas sobre una versión de código administrado de Office con un VSTO integrado (presumiblemente de la misma manera que el IDE de VB6 está integrado para VBA, por lo que el IDE de VS estaría integrado para VSTO) desde que se lanzó .NET por primera vez.

Dada la cantidad de codificación que implica, y dado que esto no produciría ninguna característica que fuera visible para los usuarios, dudo mucho que esto esté en lo alto de la lista de prioridades de Microsoft.Me imagino que superponen un conjunto de objetos de código administrado sobre la parte superior del código base existente (al igual que Joel Spolsky superpuso un conjunto de objetos COM sobre el código base C existente cuando puso VBA en Excel en primer lugar) y crearon un nuevo IDE. como predeterminado, mientras se oculta el anterior.Incluso eso sería un ejercicio importante (¡imagínese escribir la grabadora de macros!).Por supuesto, esto convertiría a .NET en un requisito previo para Office, que el equipo de Office sólo aceptará a punta de pistola.

En realidad, nunca eliminarán VBA de los productos, por supuesto: Excel aún admite macros de Excel 4 y Word todavía tiene el objeto de automatización de WordBasic para admitir macros de Word 6, y no hay señales de que ninguno de ellos se haya eliminado, ya que hay demasiado. código heredado que admitir, y nadie ha utilizado ninguno de esos modelos de codificación en una década.

Si Microsoft alguna vez incluye un entorno .NET en Office (lo cual, francamente, dudo que suceda alguna vez), entonces podrían dejar de agregar soporte VBA para las nuevas funciones de Office.Eso es lo más cerca que estarán de descontinuar VBA.

Aquí hay un comentario de Microsoft con respecto al futuro soporte de VBA.En pocas palabras, no desaparecerá en las versiones de Office para Windows (pero está descontinuado para las versiones de Mac).

VBA está muy lejos de depreciarse; de ​​hecho, VBA se reintroducirá en la próxima versión de Office en MAC ( http://www.microsoft.com/presspass/press/2008/may08/05-13MacBU2008PR.mspx).

Para la mayoría de las personas en el terreno, VBA y C XLL (¡y VB6!!) siguen siendo las herramientas preferidas.Los enlaces .NET actuales son lentos y no ofrecen ninguna ganancia de productividad.Las herramientas de tercera parte, como ExcelDNA, alivian un poco el dolor, pero obviamente el código base no administrado basado en C (y en ensamblador) de Office no se adapta fácilmente a .NET.

Los complementos de VBA son un poco complicados de implementar, pero VSTO lo es aún más.Además, VSTO implica un poco de sobrecarga, ya que necesita iniciar CLR antes de ejecutar su código.

Pero lo más importante de todo;VSTO elimina la molestia de escribir VBA.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top