OLE Automation, or Automation, is another technology built on top of COM. Automation is a general mechanism for dynamically communicating data and commands between applications.
Like the OLE compound documents technology, Automation works through a client-server mechanism. But unlike compound documents, the server and client need not offer document-style functionality, or have any on-screen representation at all. Automation simply allows a client application, or controller, to access functionality in a server that the server's developer chose to expose.
Automation is commonly used to provide a programmable interface to an application that is chiefly operated by a human user. For example, a word processing application might offer services via Automation that a script could call on to produce formatted reference documentation from raw source code input.
Microsoft Visual Basic is a popular language for writing Automation controllers, and indeed many of the details of OLE Automation were designed to accommodate Visual Basic's needs.