A Microsoft technology that enables applications to expose their functionality to other applications. Automation, formerly known as OLE Automation, is based on the Component Object Model (COM) and allows run time binding of components. Automation is used exclusively by scripting languages, such as Microsoft Visual Basic for Applications (VBA), Microsoft Visual Basic Scripting Edition (VBScript), and Microsoft JScript, to access COM components that support Automation.
The advantage of Automation is that it allows various languages to access COM components at run time. The drawbacks to Automation are that it is slow and that compile-time data type checking cannot be performed.
An application that exposes its functionality through Automation is called an Automation server. An application that communicates with the server through Automation is called an Automation controller or Automation client.
An Automation server is a COM component that typically implements the IDispatch interface. An Automation controller is a client that communicates with the Automation server, typically using IDispatch. IDispatch is a COM interface that allows a client to indirectly access all of the exposed methods and properties of the component. Therefore, IDispatch enables a client to discover and access all the various methods and properties of a component at run time through a single interface.
In the past, Automation required communication using the IDispatch interface. Now the term Automation is more generic and refers to the programmability of an application or component.