Visual Basic para Aplicaciones (VBA)
Visual Basic para Aplicaciones (VBA) es una aplicación de Microsoft Visual Basic que se construye en todas las aplicaciones de Microsoft Office, en algunas otras aplicaciones, como Microsoft Visio y al menos parcialmente en algunas otras aplicaciones como AutoCAD, WordPerfect, MicroStation, Solidworks o ArcGIS. Se sustituye y amplía las capacidades de lenguajes de macros específicas para las aplicaciones más antiguas como el lenguaje WordBasic integrado a una versión anterior del software Word, y se puede utilizar para controlar casi todas las aplicaciones host GUI, incluyendo la posibilidad manipular la funcionalidad de la interfaz de usuario, tales como menús, barras de herramientas, y la posibilidad de personalizar los diálogos y formularios de usuario.
Como su nombre indica, VBA está estrechamente relacionada con Visual Basic (sintaxis y los conceptos de las dos lenguas son similares), pero normalmente el código en una aplicación host de Microsoft Office (no es una aplicación independiente Por tanto, requiere una licencia del paquete ofimático Microsoft). Sin embargo, puede ser utilizado para controlar una aplicación de otro (por ejemplo, crear automáticamente un documento de Word a partir de datos de Excel).
El código bien ejecutado se almacena en los documentos, también se le llama macros.
VBA es rico en funcionalidades y altamente flexible, pero tiene limitaciones importantes, como sus funciones de apoyo de devolución de llamadas limitadas (callbacks) y una gestión de errores arcaicas que utilizan controladores de error en lugar de un mecanismo de excepción.
Aunque estas limitaciones hacen que este lenguaje muy poco utilizado por los desarrolladores deseosos de utilizar herramientas informáticas principalmente rendimiento, simplicidad y facilidad de acceso han atraído a algunas ocupaciones, especialmente en las finanzas.
Obsolescencia VBA
Desde el 1 de julio de 2007, Microsoft dejó de distribuir licencias a nuevos clientes VBA ya que tratar de reemplazarlos con Visual Studio Tools para aplicaciones (VSTA), kit de herramientas de personalización de aplicaciones basadas en la plataforma .NET Framework.
Office 2007 sigue utilizando el antiguo motor VBA; Sin embargo, la herramienta de Visual Studio para Office (VSTO) está disponible. Soporte de VBA en Microsoft Office para Mac fue abandonado con la distribución de la versión 12 y luego vuelve a introducir en la versión 2011.
La primera versión de VSTA fue concedido en abril de 2006 y se ha integrado en varios ISVs, incluyendo InfoPath 2007 y ABB Robotics. La próxima versión de VSTA (Visual Studio 2008 basado en conocido bajo el nombre de «Orcas»). La segunda versión de VSTA es muy diferente de la primera, con funciones como la programación dinámica y la compatibilidad de WPF, WCF, WF, LINQ y .NET 3.5.
Sin embargo, debido a la dependencia de algunas empresas a VBA, VBA está disponible en Office 2007, 2010 y 20135. La última versión 7.1 se incluye en Office 2013.
Aplicaciones VBA en Excel
La grabadora de macros en Microsoft Excel (desarrollador pestaña / Grabar Macro) permite generar fácilmente el código VBA en un procedimiento.
Cualquier secuencia de acción realizada entre el inicio y el final de la grabación se guarda en un procedimiento de VBA, que se puede volver a ejecutar de forma idéntica. Usted puede modificar este código o programa directamente en el VBE (ficha Programador / Visual Basic).
Esta es la mejor manera de aprender cómo utilizar VBA para programadores principiantes.
En primer lugar, una secuencia se graba al presionar el botón de grabación, y luego se puede ejecutar paso a paso (F8) en la herramienta de VBA para determinar las acciones realizadas por cada línea de código.
Las principales colecciones de objetos de hoja de cálculo de Excel son WorkBook (libro), hojas (hoja de cálculo) y Range (células). Pueden ser utilizados en una jerarquía descendente:
.. Cuadernos de Trabajo («Año 2012») Sheets («Mars») Range («B2») hace referencia a la celda B2 de la hoja en el Año libro en marzo de 2012;
Sheets («Mars») Range («B2») del libro activo (abierto y se muestra.);
Range («B2») de la hoja activa.
Una vez que un objeto designado:
Un método puede ser aplicado a la misma (NomObjet.NomMéthode): Range («B2») selecciona Seleccione la celda B2.
Sus propiedades (NomObjet.Propriété) se pueden ver o modificar (afecto NomObjet.Propriété = valor); propiedades comunes son visibles (para su uso con Verdadero y Falso para mostrar u ocultar) Valor (valor de una celda) Count (número de células de una página de libro de hojas …).
Las células a las referencias pueden ser:
Absoluto: Range («B2») se refiere a la celda B2 de la hoja activa;
en la célula de origen: ActiveCell.Offset (2, -1) es la celda ubicada 2 líneas hacia abajo (- anteriormente) y una columna de la izquierda (+ a derecha) de la celda activa.
Microsoft Excel le permite crear funciones personalizadas programados en código VBA y colocados en un módulo. Ellos están entonces disponibles en la biblioteca de funciones (Insertar / Función / Usuario):
Función nombrefunción (Argumento1, Argumento2 Como DataType, opcional Argumento = valor_defaut) … (acciones programadas) nombrefunción = Función de retorno Valor final
Estas características pueden recibir argumentos de entrada, el tipo puede especificarse (Argumento2) o puede ser opcional, con un valor por defecto (Argumento).
Aplicaciones VBA en Word
Las principales colecciones de procesamiento de textos objetos Palabra son registros (documentos) Bookmarks (marcadores de documento), Distancia (marcadores de contenido). Pueden ser utilizados en una jerarquía descendente:
Documentos («mydocument») el documento seleccionado de todos los documentos abiertos
Marcadores («monSignet») Guarda el documento actual
Marcadores («monSignet»). Range.Text el texto adjunto al marcador del documento actual
Una vez que un objeto designado:
un método puede ser aplicado a la misma (NomObjet.NomMetodo) ActiveDocument.SaveAs «nombrefichero.docx» Word guarda el archivo con el nombre de Windows nombrefichero.docx …
sus propiedades (NomObjet.Propiead) se pueden ver o modificar (afecto NomObjet.Propiead = valor); propiedades comunes son visibles (para su uso con Verdadero y Falso para mostrar u ocultar), Texto (contenido párrafo, un marcador o selección), Count (número de objetos en una colección …).