Visual Basic for Applications

Visual Basic for Applications
ParadigmMulti-paradigm
DeveloperMicrosoft
First appeared1993; 31 years ago (1993)
Stable release
Typing disciplineStatic/Dynamic Hybrid, Strong/Weak Hybrid
OSMicrosoft Windows, macOS
LicenseCommercial proprietary software
Websitelearn.microsoft.com/en-us/office/vba,%20https://learn.microsoft.com/de-de/office/vba
Influenced by
QuickBASIC, Visual Basic

Visual Basic for Applications (VBA) is an implementation of Microsoft's event-driven programming language Visual Basic 6.0 built into most desktop Microsoft Office applications. Although based on pre-.NET Visual Basic, which is no longer supported or updated by Microsoft (except under Microsoft's "It Just Works" support which is for the full lifetime of supported Windows versions, including Windows 10 and Windows 11), the VBA implementation in Office continues to be updated to support new Office features.[1][2] VBA is used for professional and end-user development due to its perceived ease-of-use, Office's vast installed userbase, and extensive legacy in business.

Visual Basic for Applications enables building user-defined functions (UDFs), automating processes and accessing Windows API and other low-level functionality through dynamic-link libraries (DLLs). It supersedes and expands on the abilities of earlier application-specific macro programming languages such as Word's WordBASIC. It can be used to control many aspects of the host application, including manipulating user interface features, such as menus and toolbars, and working with custom user forms or dialog boxes.

As its name suggests, VBA is closely related to Visual Basic and uses the Visual Basic Runtime Library. However, VBA code normally can only run within a host application, rather than as a standalone program. VBA can, however, control one application from another using OLE Automation. For example, VBA can automatically create a Microsoft Word report from Microsoft Excel data that Excel collects automatically from polled sensors. VBA can use, but not create, ActiveX/COM DLLs, and later versions add support for class modules.

VBA is built into most Microsoft Office applications, including Office for Mac OS X (except version 2008), and other Microsoft applications, including Microsoft MapPoint and Microsoft Visio. VBA is also implemented, at least partially, in applications published by companies other than Microsoft, including ArcGIS, AutoCAD, Collabora Online, CorelDraw, Kingsoft Office, LibreOffice,[3] SolidWorks,[4] WordPerfect, and UNICOM System Architect (which supports VBA 7.1).

  1. ^ "Compatibility Between the 32-bit and 64-bit Versions of Office 2010". msdn.microsoft.com.
  2. ^ o365devx. "What's new for VBA in Office 2019". docs.microsoft.com. Retrieved 2022-05-02.{{cite web}}: CS1 maint: numeric names: authors list (link)
  3. ^ "Support for VBA Macros". The Document Foundation - LibreOffice. Retrieved 3 January 2023.
  4. ^ "2016 SolidWorks Help – VBA". help.solidworks.com. Retrieved 2016-07-25.