Visual Basic para Aplicaciones ( VBA ) es una implementación del lenguaje de programación orientado a eventos Visual Basic 6.0 de Microsoft , integrado en la mayoría de las aplicaciones de escritorio de Microsoft Office . Aunque se basa en Visual Basic anterior a .NET, que ya no recibe soporte ni actualizaciones de Microsoft (excepto bajo el soporte "It Just Works" de Microsoft, que se extiende durante toda la vida útil de las versiones de Windows compatibles, incluidas Windows 10 y Windows 11), la implementación de VBA en Office continúa actualizándose para admitir las nuevas características de Office. [ 1 ] [ 2 ] VBA se utiliza para el desarrollo profesional y de usuarios finales debido a su facilidad de uso percibida, la vasta base de usuarios instalados de Office y su extenso legado en el ámbito empresarial.
Visual Basic para Aplicaciones permite crear funciones definidas por el usuario (UDF), automatizar procesos y acceder a la API de Windows y otras funcionalidades de bajo nivel mediante bibliotecas de vínculos dinámicos (DLL). Sustituye y amplía las capacidades de lenguajes de programación de macros específicos para aplicaciones anteriores, como WordBASIC de Word . Se puede utilizar para controlar muchos aspectos de la aplicación principal, incluyendo la manipulación de elementos de la interfaz de usuario, como menús y barras de herramientas, y el trabajo con formularios o cuadros de diálogo personalizados.
Como su nombre indica, VBA está estrechamente relacionado con Visual Basic y utiliza la biblioteca de tiempo de ejecución de Visual Basic. Sin embargo, el código VBA normalmente solo puede ejecutarse dentro de una aplicación anfitriona, en lugar de como un programa independiente . No obstante, VBA puede controlar una aplicación desde otra mediante la automatización OLE . Por ejemplo, VBA puede crear automáticamente un informe de Microsoft Word a partir de datos de Microsoft Excel que Excel recopila automáticamente de sensores. VBA puede usar, pero no crear, DLL ActiveX/COM , y las versiones posteriores añaden compatibilidad con módulos de clase.
VBA está integrado en la mayoría de las aplicaciones de Microsoft Office , incluyendo Office para Mac OS X (excepto la versión 2008), y otras aplicaciones de Microsoft, incluyendo Microsoft MapPoint y Microsoft Visio . VBA también está implementado, al menos parcialmente, en aplicaciones publicadas por empresas distintas a Microsoft, incluyendo ArcGIS , AutoCAD , Collabora Online , CorelDraw , Kingsoft Office , LibreOffice , [ 3 ] Softmaker Office , SolidWorks , [ 4 ] WordPerfect y UNICOM System Architect (que admite VBA 7.1).
Orígenes
Cuando se lanzaron los primeros ordenadores personales en las décadas de 1970 y 1980, normalmente incluían una versión de BASIC para que los usuarios pudieran escribir sus propios programas. Los primeros productos de Microsoft fueron compiladores e intérpretes de BASIC, y la compañía distribuyó versiones de BASIC con MS-DOS (versiones 1.0 a 6.0) y desarrolló productos posteriores que ofrecían más funciones y capacidades ( QuickBASIC y BASIC Professional Development System).
En 1989, Bill Gates esbozó los planes de Microsoft para usar BASIC como un lenguaje universal para mejorar o modificar el rendimiento de diversas aplicaciones de software en microcomputadoras. [ 5 ] También reveló que la base instalada de programadores activos de BASIC era de cuatro millones de usuarios, y que BASIC se usaba tres veces más frecuentemente que cualquier otro lenguaje en PC.
Cuando Visual Basic se lanzó en 1991, parecía lógico utilizarlo como lenguaje de programación universal para las aplicaciones de Windows. Hasta entonces, cada aplicación de Microsoft tenía su propio lenguaje de macros o técnica de automatización, y las herramientas eran en gran medida incompatibles. La primera aplicación de Microsoft en incorporar VBA fue Microsoft Excel 5.0 en 1993, basada en Microsoft Visual Basic 3.0. Esto impulsó el desarrollo de numerosas aplicaciones empresariales personalizadas, y se decidió lanzar VBA en una gama de productos.
Los usuarios de Windows se enteraron de los cambios a través de grupos de usuarios, libros y revistas. Entre los primeros libros de informática que introdujeron las habilidades de programación VBA se encuentran Microsoft Excel Visual Basic for Windows 95 Step by Step de Reed Jacobsen (Microsoft Press, 1995) y Microsoft Word 97 Visual Basic Step by Step de Michael Halvorson y Chris Kinata (Microsoft Press, 1997).
Diseño
El código escrito en VBA se compila [ 6 ] a Microsoft P-Code (pseudocódigo), un lenguaje intermedio propietario , que las aplicaciones anfitrionas ( Access , Excel , Word , Outlook y PowerPoint ) almacenan como un flujo separado en archivos COM Structured Storage (por ejemplo, .doco .xls) independientemente de los flujos de documentos. El código intermedio se ejecuta luego [ 6 ] por una máquina virtual (alojada por la aplicación anfitriona). La compatibilidad termina con Visual Basic versión 6; VBA es incompatible con Visual Basic .NET (VB.NET). VBA es propietario de Microsoft y, aparte de la interfaz COM, no es un estándar abierto .
Automatización
La interacción con la aplicación anfitriona se realiza mediante la automatización OLE . Normalmente, la aplicación anfitriona proporciona una biblioteca de tipos y documentación de la interfaz de programación de aplicaciones (API) que describe cómo los programas VBA pueden interactuar con la aplicación. Esta documentación se puede consultar desde el entorno de desarrollo VBA mediante su Explorador de objetos.
Los programas de Visual Basic para Aplicaciones (VBA) diseñados para usar la interfaz de automatización OLE de una aplicación no pueden utilizarse para automatizar otra aplicación, incluso si esta última aloja el entorno de ejecución de Visual Basic, debido a que las interfaces de automatización OLE serán diferentes. Por ejemplo, un programa VBA escrito para automatizar Microsoft Word no puede utilizarse con otro procesador de texto, aunque este último admita VBA.
Por el contrario, se pueden automatizar varias aplicaciones desde un mismo host mediante la creación de objetos Application dentro del código VBA. Es necesario crear referencias a las distintas bibliotecas en el cliente VBA antes de que los métodos, objetos, etc., estén disponibles para su uso en la aplicación. Esto se logra mediante lo que se conoce como enlace temprano o tardío. Estos objetos Application crean el enlace OLE a la aplicación cuando se crean por primera vez. Los comandos a las distintas aplicaciones deben ejecutarse explícitamente a través de estos objetos Application para que funcionen correctamente.
Por ejemplo, el código VBA escrito en Microsoft Access puede establecer referencias a las bibliotecas de Excel, Word y Outlook; esto permite crear una aplicación que, por ejemplo, ejecute una consulta en Access, exporte los resultados a Excel y los analice, y luego formatee la salida como tablas en un documento de Word o las envíe como un correo electrónico de Outlook.
Los programas VBA se pueden asociar a un botón de menú, una macro , un atajo de teclado o un evento OLE/COM, como la apertura de un documento en la aplicación. El lenguaje proporciona una interfaz de usuario en forma de formularios de usuario, que pueden alojar controles ActiveX para mayor funcionalidad.
La automatización de la comunicación entre procesos incluye el Intercambio Dinámico de Datos (DDE) y los Datos en Tiempo Real (RTD), que permiten llamar a un servidor de automatización del Modelo de Objetos Componentes (COM) para datos financieros o científicos dinámicos o en tiempo real. [ 7 ]
Preocupaciones de seguridad
Como ocurre con cualquier lenguaje de programación común, las macros VBA pueden crearse con intenciones maliciosas. En VBA, la mayoría de las medidas de seguridad dependen del usuario, no del autor. Las opciones de la aplicación host VBA son accesibles para el usuario. Quien ejecute un documento con macros VBA puede configurar el software con sus preferencias. Los usuarios finales pueden protegerse de los ataques deshabilitando la ejecución de macros en una aplicación o permitiendo que un documento ejecute código VBA solo si están seguros de que el código fuente del documento es fiable.
En febrero de 2022, Microsoft anunció su plan para bloquear las macros VBA en los archivos descargados de Internet de forma predeterminada en varias aplicaciones de Office debido a su uso generalizado para propagar malware. [ 8 ]
Riesgos macroeconómicos
Un riesgo asociado al uso de macros VBA, como en las aplicaciones de Microsoft Office , es la exposición a virus. [ 9 ] [ 10 ] Los riesgos se derivan de factores como la facilidad para escribir macros, lo que reduce la habilidad necesaria para escribir una macro maliciosa, y de que las prácticas habituales de intercambio de documentos permiten que un virus se propague rápidamente. [ 11 ]
- virus macro del sistema
Una macro del sistema —que proporciona una operación básica— puede redefinirse. Esto permite una flexibilidad considerable, pero también supone un riesgo que los piratas informáticos pueden aprovechar para acceder al documento y al ordenador que lo aloja sin el conocimiento ni el consentimiento del usuario. Por ejemplo, un pirata informático podría reemplazar las macros de funcionalidad básica integradas, como AutoExec, AutoNew, AutoClose, AutoOpen y AutoExit, por versiones maliciosas. [ 11 ] Una macro maliciosa podría configurarse para ejecutarse cuando el usuario pulsa una combinación de teclas común, como Ctrl+Bla que normalmente se usa para la fuente en negrita. [ 11 ]
- Conversión de documento a macro
Un tipo de macrovirus que corta y pega el texto de un documento dentro de la macro. Esta macro podría ejecutarse con la macro de apertura automática para que el texto se recree al abrir el documento (vacío). El usuario no se dará cuenta de que el documento está vacío. La macro también podría convertir solo algunas partes del texto para que sea menos perceptible. Eliminar las macros del documento manualmente o mediante un programa antivirus podría provocar la pérdida de contenido. [ 10 ] : 609–610
- macros polimórficas
Los virus polimórficos modifican su código de forma fundamental con cada replicación para evitar ser detectados por los antivirus. [ 12 ] En WordBasic (nombre original del lenguaje Visual Basic ), los virus polimórficos son difíciles de crear. De hecho, el polimorfismo de las macrosdepende del cifrado del documento. Sin embargo, los hackers no tienen control sobre la clave de cifrado . Además, el cifrado es ineficiente: las macros cifradas solo están en el documento, por lo que la clave de cifrado también lo está, y cuando una macro polimórfica se replica, la clave no cambia (la replicación afecta solo a la macro, no al cifrado). Además de estas dificultades, una macro no puede modificarse a sí misma, pero otra macro sí. WordBasic es un lenguaje potente que permite realizar algunas operaciones con las macros:
- Cambie el nombre de las variables utilizadas en la(s) macro(s).
- Inserta comentarios aleatorios entre los operadores de su(s) macro(s).
- Inserta entre los operadores de sus macros otros operadores de WordBasic que no hacen nada y que no afectan la ejecución del virus.
- Sustituya algunos de sus operadores por otros equivalentes que realicen la misma función.
- Intercambia los operadores cuyo orden no afecte al resultado de la ejecución de la macro.
- Cambiar el nombre de las macros a nombres nuevos y seleccionados aleatoriamente cada vez que el virus se replique en un nuevo documento, con los cambios apropiados en las partes del cuerpo del virus que hacen referencia a estas macros.
Para implementar virus de macro que puedan modificar su contenido, los hackers deben crear otra macro que cumpla la función de modificar el contenido del virus. Sin embargo, este tipo de virus de macro no es común. De hecho, los hackers suelen optar por crear virus de macro porque son fáciles y rápidos de implementar. Crear una macro polimórfica requiere un amplio conocimiento del lenguaje WordBasic (necesita funcionalidades avanzadas) y más tiempo que un virus de macro "clásico". Incluso si un hacker creara una macro polimórfica, el polimorfismo debe realizarse, por lo que el documento debe actualizarse y la actualización debe ser visible para el usuario. [ 10 ] : 610–612
- macros encadenadas
Durante la replicación, una macro puede crear macros que no hacen nada. Pero esta idea se puede combinar con macros polimórficas, por lo que las macros no necesariamente no hacen nada; cada macro invoca a la siguiente, por lo que se pueden organizar en cadena. En tal caso, si no se eliminan todas durante una desinfección, se activa alguna carga útil destructiva. Este tipo de ataque puede provocar que el procesador Winword falle con un error interno. Desde Winword 6.0 , el número de macros por plantilla está limitado a 150, por lo que el ataque también se limita, pero aún puede ser muy molesto. [ 10 ] : 623
- Macrovirus de "apareamiento"
En algunos casos, los virus macro pueden interactuar entre sí. Si dos virus se ejecutan simultáneamente, ambos pueden modificar el código fuente del otro, dando como resultado un nuevo virus que los antivirus no pueden reconocer. Sin embargo, el resultado es totalmente aleatorio: el virus macro puede ser más o menos infeccioso, dependiendo de la parte del virus que se haya modificado. No obstante, cuando la interacción es involuntaria, el virus macro resultante tiene más probabilidades de ser menos infeccioso. De hecho, para replicarse, necesita conocer las instrucciones del código fuente, pero si este se modifica aleatoriamente, el virus macro no puede replicarse. Sin embargo, es posible crear macros intencionadamente (a diferencia de los virus macro polimórficos, que deben usar otra macro para modificar su contenido) para aumentar la infectividad de ambos virus. En el ejemplo del artículo, [ 10 ] : 612–613 el macrovirus Colors [ 13 ] infectó un documento, pero otro había infectado el sistema del usuario antes : el macrovirus Concept . Ambos virus usan el comando AutoOpen , por lo que, en primer lugar, se detectó el macrovirus Colors pero el comando AutoOpen en él era el comando del macrovirus Concept . Además, cuando Concept se duplica, no está cifrado, pero el comando en el virus Colors estaba cifrado (Colors cifra sus comandos). Así, la replicación del macrovirus Concept da como resultado la hibridación de este macrovirus (que había infectado primero el sistema del usuario) y Colors . El "híbrido" solo podría replicarse si AutoOpen no se ejecutara; de hecho, este comando proviene de Concept , pero el cuerpo del híbrido es Colors , lo que crea algunos conflictos. Este ejemplo muestra el potencial de los macrovirus que se aparean: si se crea un par de macrovirus que se aparean, será más difícil detectarlos (en esta hipótesis, solo hay dos virus que se aparean) mediante escáneres específicos para virus y podría reforzar su virulencia. Afortunadamente, este tipo de macrovirus es raro (más que los macrovirus polimórficos, puede que ni siquiera exista uno), de hecho, crear dos (o más) que puedan interactuar entre sí sin reducir la virulencia (sino reforzándola) es complicado.
- Mutantes de macrovirus
Las macros pueden diseñarse para modificar macros existentes; una herramienta de este tipo permitiría crear un nuevo virus modificando uno ya existente. Esto es difícil de lograr con archivos ejecutables, pero resulta muy sencillo con los virus de macro, dado que el código fuente de las macros siempre está disponible. De forma similar a las macros polimórficas, una macro puede modificar todas las macros presentes en el documento. En consecuencia, con tan solo unas pocas modificaciones se podría crear un mutador de virus de macro y, por lo tanto, generar rápidamente miles de virus conocidos. [ 10 ] : 613–614
- macrovirus parásitos
La mayoría de los virus macro son independientes; no dependen de otras macros (para la parte infecciosa del virus, no para la replicación en algunos casos), pero algunos virus macro sí. Se les llama macros parásitas. [ 10 ] : 614–615 Al ejecutarse, comprueban otras macros (virus o no) y les añaden su contenido. De esta forma, todas las macros se convierten en virus. Sin embargo, este tipo de macro no se puede propagar tan rápidamente como las macros independientes. De hecho, depende de otras macros, por lo que, sin ellas, el virus no puede propagarse. Así pues, las macros parásitas suelen ser híbridas: son independientes y pueden infectar otras macros. Este tipo de virus macro plantea problemas reales a los antivirus específicos para virus ; de hecho, modifican el contenido de otros virus, por lo que no es posible una detección precisa.
antivirus subóptimo
Existen diferentes tipos de antivirus (o escáneres), uno de ellos es el antivirus de análisis heurístico que interpreta o emula macros. De hecho, examinar todas las ramas de las macros requiere una complejidad NP-completa [ 10 ] : 605 (usando retroceso ), por lo que, en este caso, el análisis de un documento (que contiene macros) llevaría demasiado tiempo. Interpretar o emular una macro podría generar errores de falsos positivos o provocar que los virus de macros no se detecten.
Otro tipo de antivirus, el antivirus de verificación de integridad , en algunos casos no funciona: solo verifica documentos con extensiones DOT [ 14 ] o DOC (de hecho, algunos productores de antivirus sugieren a sus usuarios), pero los documentos de Word pueden residir en otras extensiones distintas a esas dos, y el contenido del documento tiende a cambiar con frecuencia. [ 10 ] : 605 Por lo tanto, al igual que el análisis heurístico , esto puede llevar a errores de falsos positivos , debido a que este tipo de antivirus verifica todo el documento.
El último tipo de antivirus que veremos será el escáner específico para virus . [ 10 ] : 608 Busca la firma de los virus, por lo que este tipo de antivirus es menos efectivo que los anteriores. De hecho, los virus detectados por los escáneres específicos para virus son solo los conocidos por los productores de software (por lo que se necesitan más actualizaciones que en otros tipos de escáneres). Además, este tipo de antivirus es débil contra los virus morphing (véase la sección anterior ). Si un virus macro cambia su contenido (es decir, su firma), ya no puede ser detectado por los escáneres específicos para virus , incluso si se trata del mismo virus realizando las mismas acciones. Su firma no coincide con la declarada en el escáner de virus.
Además de la responsabilidad del antivirus, existe la responsabilidad del usuario: si se detecta un posible macrovirus, el usuario puede elegir qué hacer con él: ignorarlo, ponerlo en cuarentena o eliminarlo, aunque esta última opción es la más peligrosa. Algunos macrovirus destructivos pueden activarlos, destruyendo datos al ser eliminados. Por lo tanto, tanto los antivirus como los usuarios son responsables de la seguridad e integridad de los documentos y del equipo. Si bien el antivirus no es óptimo en la detección de virus, la mayoría de los macrovirus se detectan y la detección de virus está mejorando, aunque también surgen nuevos macrovirus.
Historial de versiones
- VBA se lanzó por primera vez con MS Excel 5.0 en 1993. Se convirtió en un éxito instantáneo entre los desarrolladores para crear soluciones corporativas con Excel. La inclusión de VBA en Microsoft Project, Access y Word, reemplazando a Access BASIC y WordBASIC respectivamente, contribuyó a su mayor popularidad.
- VBA 4.0 es la siguiente versión famosa, totalmente mejorada respecto a la anterior. Lanzada en 1996, está escrita en C++ y se convirtió en un lenguaje orientado a objetos.
- VBA 5.0 se lanzó en 1997 junto con todos los productos de MS Office 97. La única excepción fue Outlook 97, que utilizaba VBScript .
- VBA 6.0 y VBA 6.1 se lanzaron en 1999, destacando su compatibilidad con los complementos COM de Office 2000. VBA 6.2 se publicó junto con Office 2000 SR-1.
- VBA 6.3 se lanzó después de Office XP, VBA 6.4 siguió a Office 2003 y VBA 6.5 se lanzó con Office 2007.
- Office 2010 incluye VBA 7.0. VBA 7 no presenta novedades para desarrolladores en comparación con VBA 6.5, salvo la compatibilidad con 64 bits. Sin embargo, tras el lanzamiento de VBA 6.5/Office 2007, Microsoft dejó de licenciar VBA para otras aplicaciones.
- Office 2013, Office 2016, Office 2019, Office 2021 y Office 2024 incluyen VBA 7.1.
Desarrollo
Desde el 1 de julio de 2007, Microsoft ya no ofrece licencias de distribución de VBA a nuevos clientes. Microsoft tenía la intención de agregar lenguajes basados en .NET a la versión actual de VBA desde el lanzamiento de .NET Framework , [ 15 ] cuyas versiones 1.0 y 1.1 incluían una tecnología de tiempo de ejecución de scripting llamada Script para .NET Framework . [ 16 ] Visual Studio .NET 2002 y 2003 SDK contenía un IDE de scripting separado llamado Visual Studio for Applications (VSA) que admitía VB.NET. [ 17 ] [ 18 ] [ 19 ] Una de sus características significativas era que las interfaces a la tecnología estaban disponibles a través de Active Scripting ( VBScript y JScript ), lo que permitía incluso que las aplicaciones no compatibles con .NET se programaran mediante lenguajes .NET. Sin embargo, VSA quedó obsoleto en la versión 2.0 de .NET Framework, [ 19 ] sin una ruta de actualización clara para las aplicaciones que deseen compatibilidad con Active Scripting (aunque se pueden crear "scripts" en C# , VBScript y otros lenguajes .NET, que se pueden compilar y ejecutar en tiempo de ejecución a través de bibliotecas instaladas como parte del entorno de ejecución estándar de .NET).
Microsoft eliminó la compatibilidad con VBA para Microsoft Office 2008 para Mac . [ 20 ] [ 21 ] VBA se restauró en Microsoft Office para Mac 2011. Microsoft afirmó que no tiene planes de eliminar VBA de la versión de Office para Windows. [ 22 ] [ 23 ]
Con Office 2010 , Microsoft introdujo VBA7, que contiene un tipo de datos de puntero verdadero: LongPtr. Esto permite hacer referencia al espacio de direcciones de 64 bits. La instalación de 64 bits de Office 2010 no admite controles comunes de MSComCtl (TabStrip, Toolbar, StatusBar, ProgressBar, TreeView, ListViews, ImageList, Slider, ImageComboBox) ni MSComCt2 (Animation, UpDown, MonthView, DateTimePicker, FlatScrollBar), por lo que el código heredado de 32 bits portado a código VBA de 64 bits que depende de estos controles comunes no funcionará. Esto no afectó a la versión de 32 bits de Office 2010. [ 24 ] Microsoft finalmente lanzó una versión de 64 bits de MSComCtl con la actualización del 27 de julio de 2017 para Office 2016. [ 25 ]
Véase también
Referencias
- ↑ "Compatibilidad entre las versiones de 32 bits y 64 bits de Office 2010" . msdn.microsoft.com .
- ↑ o365devx. "Novedades de VBA en Office 2019" . docs.microsoft.com . Consultado el 2 de mayo de 2022 .
{{cite web}}: CS1 maint: nombres numéricos: lista de autores ( enlace ) - ↑ "Soporte para macros VBA" . The Document Foundation - LibreOffice . Consultado el 3 de enero de 2023 .
- ↑ "Ayuda de SolidWorks 2016 – VBA" . help.solidworks.com . Consultado el 25 de julio de 2016 .
- ↑ Gates, Bill; Halvorson, Michael; Rygmyr, David (1989). Aprende BASIC ahora . Redmond, WA: Microsoft Press. págs. ix– x.
- 1 2 "ACC: Visual/Access Basic es a la vez un compilador y un intérprete" . Microsoft. 2012. Archivado del original el 21/10/2012.
- ↑ " Cómo configurar y usar la función RTD en Excel" . msdn.microsoft.com
- ↑ "Microsoft bloqueará las macros VBA de Office por defecto" . The Verge . 7 de febrero de 2022. Consultado el 26 de septiembre de 2022 .
- ↑ Vesselin Bontchev. "Problemas de identificación de macrovirus" . macrovirus .
{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace ) - 1 2 3 4 5 6 7 8 9 10 Vesselin Bontchev (1996). "Posibles ataques de virus macro y cómo prevenirlos". Virus, Macros, Safety of Macros . 15 (7): 595. doi : 10.1016/S0167-4048(97)88131-X .
- 1 2 3 Paul Docherty; Peter Simpson (1999). "Ataques de macros: ¿Qué sigue después de Melissa?". Viruses, Safety of Macros . 18 (5): 391– 395. doi : 10.1016/S0167-4048(99)80084-4 .
- ↑ Macros polimórficas
- ↑ "Colores del macrovirus" . Archivado del original el 22/11/2012 . Consultado el 15/12/2012 .
- ↑ Extensión DOT
- ↑ "Visual Studio for Applications" . Archivado del original el 17 de diciembre de 2007.
- ↑ "Presentación de Visual Studio para aplicaciones" . msdn.microsoft.com .
- ↑ "Script Happens .NET" . msdn.microsoft.com .
- ↑ "Microsoft presenta la tecnología de desarrollo VSA" . Archivado del original el 17 de diciembre de 2007.
- 1 2 "Scripting VSA en .NET" . Archivado del original el 11 de febrero de 2007.
- ↑ "WWDC: Microsoft actualiza el estado universal de las aplicaciones para Mac" . Macworld . 7 de agosto de 2006. Archivado del original el 19 de julio de 2008. Consultado el 25 de mayo de 2007 .
- ↑ "¿Qué es Microsoft Office y Office 365? – Preguntas frecuentes" .
- ↑ "Los rumores sobre la desaparición de VBA han sido muy exagerados" .
- ↑ "Aclaración sobre la compatibilidad con VBA" . Archivado del original el 11 de abril de 2008.
- ↑ "Compatibilidad entre las versiones de 32 bits y 64 bits de Office 2010" . msdn.microsoft.com .
- ↑ "Notas de la versión para las versiones mensuales del canal en 2017" . learn.microsoft.com . Consultado el 13 de noviembre de 2022 .
- Familia de lenguajes de programación BASIC
- Lenguajes de programación de macros
- Microsoft Office
- Lenguajes de programación de Microsoft
- Lenguajes de programación creados en 1993