Aquí hay una respuesta más técnica y exhaustiva a una vieja pregunta: Visual Basic para Aplicaciones (VBA) y Visual Basic (pre.NET) no son solo lenguajes similares, son el mismo lenguaje. Específicamente:
- Tienen la misma especificación : la descripción independiente de la implementación de lo que contiene el lenguaje y lo que significa. Puede leerlo aquí: [MS-VBAL]: Especificación de lenguaje VBA
- Tienen la misma plataforma : ambos compilan en Microsoft P-Code , que a su vez es ejecutado por la misma máquina virtual, que se implementa en el dll msvbvm [x.0] .dll.
En un viejo libro de referencia de VB que encontré el año pasado, el autor (Paul Lomax) incluso afirmó que 'VBA' siempre ha sido el nombre del lenguaje en sí, ya sea que se use en aplicaciones independientes o en contextos integrados (como MS Office ):
"Antes de continuar, aclaremos un punto fundamental. Visual Basic para Aplicaciones (VBA) es el lenguaje utilizado para programar en Visual Basic (VB). VB en sí es un entorno de desarrollo; el elemento del lenguaje de ese entorno es VBA". "
Las pequeñas diferencias
Hospedado versus independiente : en términos prácticos, cuando la mayoría de las personas dicen "VBA", significan específicamente "VBA cuando se usa en MS Office", y dicen "VB6" para significar "VBA usado en la última versión del VBA independiente". compilador (es decir, Visual Studio 6) ". El IDE y el compilador incluido con MS Office es casi idéntico a Visual Studio 6, con la limitación de que no permite la compilación de archivos dll o exe independientes. Esto a su vez significa que las clases definidas en los proyectos VBA integrados no son accesibles desde los consumidores COM no integrados, ya que no se pueden registrar.
Desarrollo continuo : Microsoft dejó de producir un compilador de VBA autónomo con Visual Studio 6, ya que cambiaron al tiempo de ejecución de .NET como la plataforma elegida. Sin embargo, el equipo de MS Office continúa manteniendo VBA e incluso lanzó una nueva versión (VBA7) con una nueva VM (ahora llamada VBA7.dll) a partir de MS Office 2010. La única diferencia importante es que VBA7 tiene un 32- y la versión de 64 bits y tiene algunas mejoras para manejar las diferencias entre los dos, específicamente con respecto a las invocaciones de API externas.