A subset of VbClassic for scripting MicroSoft's applications, known commonly as VBA.
MS deserves a lot of credit for this (not given as a rule)! They took a lame language (Basic), and evolved it to include support for objects. At the same time they evolved existing non-OO applications to adopt an object model architecture, and came up with a consistent, integrated tool that can exercise extensive control over all Office applications. Asked eight or ten years ago, most would have said it couldn't be done. It is suprising that its capabilities are not exploited as often as they might be.
I found its object model confusing and unnatural. A better approach is to leverage one's knowledge of the product rather than add a foreign language. See the Lotus 1-2-3 story in ComputerProgrammingForEverybody. Perhaps VBA object models were better for longer programs, but for smaller things, keyboard and menu macros mixed with formulas seem a better fit, expecially for amateur programmers or end-users.Annoyances
VBA is annoying for some for the following reasons: