Visual Basic for Applications

lenguaje de programación

Microsoft VBA (Visual Basic para aplicaciones) es el lenguaje de macros de Microsoft Visual Basic que se utiliza para programar aplicaciones Windows y que se incluye en varias aplicaciones Microsoft. VBA permite a usuarios y programadores ampliar la funcionalidad de programas de la suite Microsoft Office. Visual Basic para Aplicaciones es un subconjunto casi completo de Visual Basic 5.0 y 6.0.

Microsoft VBA viene integrado en aplicaciones de Microsoft Office, como Outlook, Word, Excel, Access y Powerpoint. Prácticamente cualquier cosa que se pueda programar en Visual Basic 5.0 o 6.0 se puede hacer también dentro de un documento de Office, con la sola limitación de que el producto final no se puede compilar separadamente del documento, hoja o base de datos en que fue creado; es decir, se convierte en una macro (o más bien súper macro). Esta macro puede instalarse o distribuirse con sólo copiar el documento, presentación o base de datos.

Su utilidad principal es automatizar tareas cotidianas, así como crear aplicaciones y servicios de bases de datos para el escritorio. Permite acceder a las funcionalidades de un lenguaje orientado a eventos con acceso a la API de Windows.

Al provenir de un lenguaje basado en Basic tiene similitudes con lenguajes incluidos en otros productos de ofimática como StarBasic y OpenOffice/LibreOffice Basic.

Sub LoopTableExample

    Dim db As DAO.Database
    Dim rcs As DAO.Recordset

    Set db = CurrentDb
    Set rcs = db.OpenRecordset("SELECT * FROM tblMain")

    Do Until rcs.EOF
        MsgBox rcs!FieldName
        rcs.MoveNext
    Loop

    rcs.Close
    db.Close
    Set rcs = Nothing
    Set db = Nothing
End Sub

VBA puede ser usado para crear una función definida por el usuario para usar en una hoja de Microsoft Excel:

Public Function BUSINESSDAYPRIOR(dt As Date) As Date

    Select Case Weekday(dt, vbMonday)
    Case 1
        BUSINESSDAYPRIOR = dt -3
    Case 7
        BUSINESSDAYPRIOR = dt -2
    Case Else
        BUSINESSDAYPRIOR = dt -1
    End Select
End Function

VBA también tiene acceso a funciones internas de Windows en diversos grados, y puede acceder a recursos desde horarios hasta archivos y control:

Sub ObtenerFecha()

    MsgBox "La fecha es " & Format(Now(), "dd-mm-yyyy")


End Sub

Se puede acceder al lenguaje al ingresar al menú herramientas. Y una vez allí MACRO y EDITOR DE VISUAL BASIC.

Futuro editar

El siguiente paso natural en la evolución de VBA es dejar de ser un subconjunto de Visual Basic y serlo de la plataforma .NET. Microsoft no planea hacer mejoras significativas a VBA en el futuro. Aunque continuará dando soporte a las licencias de VBA que se han ido ofreciendo, VBA está siendo sustituido por las Herramientas para Aplicaciones de Microsoft Visual Studio (VSTA: Visual Studio Tools for Applications) y las Herramientas para Office de Microsoft Visual Studio (VSTO: Visual Studio Tools for Office). Estas herramientas funcionan bajo la plataforma .NET.

Desde el 1 de julio de 2007, Microsoft ya no ofrece nuevas licencias de VBA a nuevos clientes. Los que poseían una licencia de VBA podrán conseguir una licencia de las nuevas soluciones por parte de Microsoft.

Véase también editar