Macro recording can produce VBA code replicating user actions, thus
allowing simple automation of regular tasks.
VBA allows the creation of forms and in-worksheet controls to
communicate with the user.
The language supports use (but not creation) of ActiveX (COM) DLL's;
later versions add support for class modules allowing the use of
basic object-oriented programming (OOP) techniques.
VBA 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.
VBA can also be used to create import and export filters for various
file formats.
VBA is closely related to Visual Basic, but it can normally only run
code from within a host application rather than as a stand-alone
application. It can however be used to control one application from
another application (for example, automatically creating a Word
report from Excel data).