Visual Basic para Aplicaciones | |
Fecha de la primera versión | 1993 |
---|---|
Paradigma | Imperativo , impulsado por eventos |
Desarrollador | Microsoft |
Última versión | 7.1.1100 ( Oficina 2013 ) |
Mecanografía | Híbrido estático / dinámico |
Influenciado por | Visual Basic |
Licencia | Software propietario |
Visual Basic para Aplicaciones ( VBA ) es una implementación de Microsoft Visual Basic que está integrado en todas las aplicaciones de Microsoft Office , en algunas otras aplicaciones de Microsoft como Visio y al menos parcialmente en algunas otras aplicaciones como AutoCAD , WordPerfect , MicroStation , Solidworks o incluso ArcGIS . Reemplaza y amplía las capacidades de los lenguajes de macros específicos para aplicaciones más antiguas, como el lenguaje WordBasic integrado en una versión anterior del software Word, y se puede usar para controlar casi todas las HMI de las aplicaciones host , incluida la capacidad de manipular la interfaz de usuario. funciones como menús y personalizar cuadros de diálogo y formularios de usuario.
Como sugiere el nombre, VBA está estrechamente relacionado con Visual Basic (la sintaxis y los conceptos de ambos lenguajes son similares), pero normalmente solo puede ejecutar código en una aplicación host de Microsoft Office (no una aplicación independiente). requiere una licencia de la suite ofimática de Microsoft). Sin embargo, se puede utilizar para controlar una aplicación desde otra (por ejemplo, crear automáticamente un documento de Word a partir de datos de Excel ). El código así ejecutado se almacena en instancias de documentos, también se le llama macro.
VBA es funcionalmente rico y altamente flexible, pero tiene limitaciones significativas, como sus funciones de devolución de llamada de soporte limitadas ( devoluciones de llamada ) y errores de administración arcaicos, utilizando errores de manejadores en lugar de un mecanismo de excepción .
Si bien estas limitaciones hacen que este lenguaje sea muy poco utilizado por los desarrolladores informáticos deseosos de utilizar sobre todo herramientas eficientes, su sencillez y facilidad de acceso han atraído a determinadas profesiones, especialmente en el ámbito de las finanzas.
Desde el 1 er de julio de de 2007, Microsoft ya no distribuye licencias VBA a sus nuevos clientes, ya que intentan reemplazarlas con Visual Studio Tools for Applications (VSTA), un kit de herramientas de personalización de aplicaciones basado en la plataforma .NET Framework . Del artículo de D r eX:
“ Los proveedores de software ahora usarán VSTA como reemplazo de VSA [Visual Studio for Applications], para brindar funcionalidad de personalización en sus aplicaciones. […] VSA era una alternativa de VBA administrada por servidor, cliente ligero , basada en Visual Studio. Los editores consideraron que el enfoque del servidor era menos útil que un modelo de cliente enriquecido , por lo que, basándose en estos comentarios, Microsoft comenzó a desarrollar VSTA. Algunos editores todavía usan VSA en la actualidad, pero encontramos que su valor es limitado. Algunas de las tecnologías desarrolladas para VSA están incluidas en VSTA. La personalización de aplicaciones mediante VSTA aprovecha mejor la funcionalidad de cliente enriquecida que VSA, proporcionando un entorno altamente optimizado para la personalización de aplicaciones del lado del cliente y del servidor. "
“ (En) VSTA ahora reemplaza a VSA [Visual Studio for Applications] como la tecnología que los ISV usarán para proporcionar capacidades de personalización en sus aplicaciones. […] VSA era una alternativa de cliente ligero impulsada por servidor a VBA construido en Visual Studio. Los ISV consideraron que el enfoque del servidor era menos útil que un modelo de cliente enriquecido, por lo que, basándose en sus comentarios, Microsoft comenzó a desarrollar VSTA. Hay ISV que utilizan VSA con éxito en la actualidad, pero descubrimos que su aplicabilidad era limitada. Parte de la tecnología desarrollada para VSA está incorporada dentro de VSTA. La personalización de aplicaciones VSTA aprovecha mejor la funcionalidad de cliente enriquecida que VSA, ofreciendo un entorno altamente optimizado para la personalización de aplicaciones tanto en el cliente como en el servidor. "
Office 2007 sigue utilizando el antiguo motor VBA; Sin embargo, Visual Studio Tools para Office (en) (VSTO) está disponible. La compatibilidad con VBA en Microsoft Office para Mac se interrumpió con el lanzamiento de la versión 12 en 2008 y se reintrodujo en la versión 2011. Consulte también VB.NET.
La primera versión de VSTA se lanzó enAbril de 2006y se ha integrado en varios ISV, incluidos InfoPath 2007 y ABB Robotics. La próxima versión de VSTA (basada en Visual Studio 2008 conocida como "Orcas") se lanzará aFebrero de 2008. La segunda versión de VSTA es muy diferente de la primera, con características como programación dinámica y compatibilidad con WPF , WCF , WF , LINQ y .NET 3.5.
Sin embargo, debido a la dependencia de algunas empresas en VBA, VBA todavía está disponible en Office 2007, 2010, 2013 y 2016 y 2019. La última versión 7.1 se incluye en Office 2013. El lenguaje de macros de Excel 4, anterior a VBA, es también es compatible, incluso con las últimas versiones de Excel.
La increíble popularidad de Visual Basic después de su lanzamiento llevó a Microsoft a incluir una versión simplificada en sus aplicaciones de oficina para reemplazar los diversos lenguajes de macros. Sin embargo, como demuestra la cronología, este cambio se ha producido durante un largo período de tiempo.
La compatibilidad mínima con VBA también está disponible en OpenOffice.org , a partir de la versión 3.0.
La grabadora de macros en Microsoft Excel (pestaña Desarrollador / Grabar una macro) le permite generar fácilmente código VBA en un procedimiento.
Toda la secuencia de acción realizada entre el inicio y el final de la grabación se registra en un procedimiento VBA, que se puede volver a ejecutar de forma idéntica. Es posible modificar este código o programar directamente en el VBE (pestaña Desarrollador / Visual Basic).
Este es el mejor método para aprender a usar VBA para programadores novatos.
Primero, registramos una secuencia presionando el botón de grabación, y luego podemos ejecutarla paso a paso (tecla F8) en la herramienta VBA para conocer las acciones realizadas por cada línea de código.
Las principales colecciones de objetos de la hoja de cálculo de Excel son Libro de trabajo (libro de trabajo), Hojas ( hoja de cálculo ) y Rango ( celdas de rango ). Se pueden utilizar en una jerarquía descendente:
Una vez que se designa un objeto:
Las celdas de referencia pueden ser para:
Microsoft Excel le permite crear funciones personalizadas programadas en código VBA y colocadas en un módulo. A continuación, se puede acceder a ellos en la biblioteca de funciones (Insertar / Función / Personalizado):
Function NomFonction (Argument1, Argument2 As TypeDonnées, Optional Argument3=valeur_defaut) …(actions programmées) NomFonction = valeur renvoyée End FunctionEstas funciones pueden recibir argumentos de entrada, cuyo tipo se puede especificar (Argument2 arriba) o que pueden ser opcionales, con un valor predeterminado (Argument3 arriba). Aquí nuevamente, el procedimiento VBA se puede utilizar para automatizar cualquier tipo de tarea en Microsoft Excel , ahorrando así tiempo y facilitando su uso.
En cuanto a Excel, la grabadora de macros en Microsoft Word (pestaña Desarrollo / Nueva macro) le permite generar fácilmente código VBA en un procedimiento.
Toda la secuencia de acción realizada entre el inicio y el final de la grabación se registra en un procedimiento VBA, que se puede volver a ejecutar de forma idéntica. Es posible modificar este código o programar directamente en el VBE (pestaña Desarrollo / Editor de Visual Basic). La grabadora de macros es el mejor método para aprender VBA para programadores novatos. Primero registramos una secuencia presionando el botón de grabación, y luego podemos ejecutarla paso a paso (tecla F8) en la herramienta VBA para verificar las acciones realizadas por cada línea de código.
Las principales colecciones de objetos de procesamiento de texto de Word son Documentos (documentos), Marcadores (marcadores de documentos), Rango (contenido de marcadores). Se pueden utilizar en una jerarquía descendente:
Una vez que se designa un objeto: