Diferencia entre Visual Basic 6.0 y VBA

Resuelto Thomas Geritzma asked hace 15 años • 9 respuestas

Cuál es la diferencia entre los dos. Siempre pensé que VBA es una versión algo "lisiada" de VB, pero cuando un amigo me preguntó el otro día no tenía idea de cuáles eran las diferencias reales.

Además, cuando usa, por ejemplo, Excel, ¿es VB o VBA?

Thomas Geritzma avatar Jun 15 '09 00:06 Thomas Geritzma
Aceptado

Para casi todos los propósitos de programación, VBA y VB 6.0 son lo mismo.

VBA no puede compilar su programa en un binario ejecutable. Siempre necesitarás el host (un archivo de Word y MS Word, por ejemplo) para contener y ejecutar tu proyecto. Tampoco podrá crear archivos DLL COM con VBA.

Aparte de eso, hay una diferencia en el IDE: el IDE VB 6.0 es más potente en comparación. Por otro lado, tiene una estrecha integración de la aplicación host en VBA. Los objetos y eventos globales de la aplicación (como "ActiveDocument") están disponibles sin declaración, por lo que la programación específica de la aplicación es sencilla.

Aún así, nada le impide iniciar Word, cargar el IDE de VBA y resolver un problema que no tiene ninguna relación con Word. No estoy seguro de si hay algo que VB 6.0 pueda hacer (técnicamente) y VBA no. Sin embargo, estoy buscando una hoja de comparación en MSDN.

Tomalak avatar Jun 14 '2009 18:06 Tomalak

VBA significa Visual Basic para Aplicaciones y también lo es el pequeño hermano de scripting "para aplicaciones" de VB. De hecho, VBA está disponible en Excel, pero también en otras aplicaciones de Office.

Con VB, se puede crear una aplicación de Windows independiente, lo que no es posible con VBA.

Sin embargo, los desarrolladores pueden "incrustar" VBA en sus propias aplicaciones, como lenguaje de programación para automatizar esas aplicaciones.

Editar : De las preguntas frecuentes de VBA :

P. ¿ Qué es Visual Basic para Aplicaciones?

R. Microsoft Visual Basic para Aplicaciones (VBA) es un entorno de programación integrable diseñado para permitir a los desarrolladores crear soluciones personalizadas utilizando todo el poder de Microsoft Visual Basic. Los desarrolladores que utilizan aplicaciones que alojan VBA pueden automatizar y ampliar la funcionalidad de la aplicación, acortando el ciclo de desarrollo de soluciones empresariales personalizadas.

Tenga en cuenta que VB.NET es incluso otro lenguaje que solo comparte sintaxis con VB.

fretje avatar Jun 14 '2009 17:06 fretje

Aquí hay una respuesta más técnica y completa a una vieja pregunta: Visual Basic para Aplicaciones (VBA) y Visual Basic (pre-.NET) no son sólo 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. Puedes leerlo aquí: [MS-VBAL]: Especificación del lenguaje VBA
  • Tienen la misma plataforma : ambos compilan en Microsoft P-Code , que a su vez es ejecutado por exactamente la misma máquina virtual, que está implementada 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 de lenguaje de ese entorno es VBA. "

Las diferencias menores

Alojado versus independiente : en términos prácticos, cuando la mayoría de las personas dicen "VBA", se refieren específicamente a "VBA cuando se usa en MS Office", y dicen "VB6" para significar "VBA usado en la última versión de VBA independiente". compilador (es decir, Visual Studio 6)". El IDE y el compilador incluidos con MS Office son casi idénticos a Visual Studio 6, con la limitación de que no permite la compilación en archivos dll o exe independientes. Esto, a su vez, significa que las clases definidas en proyectos VBA integrados no son accesibles desde consumidores COM no integrados, porque no se pueden registrar.

Desarrollo continuo : Microsoft dejó de producir un compilador VBA independiente con Visual Studio 6, ya que cambió al tiempo de ejecución .NET como plataforma preferida. Sin embargo, el equipo de MS Office continúa manteniendo VBA e incluso lanzó una nueva versión (VBA7) con una nueva máquina virtual (ahora llamada simplemente VBA7.dll) a partir de MS Office 2010. La única diferencia importante es que VBA7 tiene una versión de 32 bits. y 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.

Joshua Honig avatar Mar 24 '2014 13:03 Joshua Honig

¿Quieres comparar VBA con VB-Classic (VB6..) o VB.NET?

VBA (Visual Basic para Aplicaciones) es un lenguaje de script basado en vb-classic integrado en las aplicaciones de Microsoft Office. Creo que las características de su lenguaje son similares a las de VB5 (solo le faltan algunas funciones integradas), pero:

Tiene acceso al documento de Office para el que escribió el script VBA y, por lo tanto, puede, por ejemplo,

  • Escribe macros (=rutinas automatizadas para pequeñas tareas recurrentes en tu trabajo de oficina)
  • Definir nuevas funciones para excel-cell-formula
  • Procesar datos de oficina

Ejemplo: establecer el valor de una celda de Excel

ActiveSheet.Cells("A1").Value = "Foo"

VBC y -.NET no son lenguajes de script. Los usa para escribir aplicaciones independientes con IDE separados que no puede hacer con VBA (los scripts VBA simplemente "existen" en Office)

VBA no tiene nada que ver con VB.NET (solo tienen una sintaxis similar).

Dario avatar Jun 14 '2009 18:06 Dario