Visual Basic for Applications (VBA) is an implementation of Microsoft's
Visual Basic which is built into all
Microsoft Office applications, some other Microsoft applications such as
Visio[?] and is at least partially implemented in some other applications such as
AutoCAD and
WordPerfect. It supersedes and expands on the capabilities of earlier application-specific
macro programming languages such as Word's WordBasic, and can be used to control almost all 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, but can normally only run code from within a host application rather than as a standalone program. It can however be used to control one application from another (for example automatically creating a Word report from Excel data).
VBA is functionally rich and extremely flexible but it does have some important limitations, most notably in its ability to handle callback functions, a fundamental requirement of a "full" Windows programming language.