In addition to working with Word data, you may want your application to exchange data with other applications, such as Microsoft Excel, PowerPoint, or Access. You can communicate with other applications by using Automation (formerly OLE Automation) or dynamic data exchange (DDE).
Automating Word from another application
Automation allows you to return, edit, and export data by referencing another application's objects, properties, and methods. Application objects that can be referenced by another application are called Automation objects.
The first step toward making Word available to another application for Automation is to make a reference to the Word Application object. In Visual Basic, you use the CreateObject or GetObject function to return a reference to the Word Application object. For example, in a Microsoft Excel procedure, you could use the following instruction.
Set wrd = CreateObject("Word.Application")
This instruction makes the Application object in Word available for Automation. Using the objects, properties, and methods of the Word Application object, you can control Word. For example, the following instruction creates a new Word document.
wrd.Documents.Add
The CreateObject function starts a Word session that Automation will not close when the object variable that references the Application object expires. Setting the object reference to the Nothing keyword will not close Word. Instead, use the Quit method to close the Word application. The following Microsoft Excel example displays the Word startup path. The Quit method is used to close the new instance of Word after the startup path is displayed.
Set wrd = CreateObject("Word.Application")
MsgBox wrd.Options.DefaultFilePath(wdStartupPath)
wrd.Quit
Automating another application from Word
To exchange data with another application using Automation from Word, you first obtain a reference to the application using the CreateObject or GetObject function. Then, using the objects, properties, and methods of the other application, you add, change, or delete information. When you finish making your changes, close the application. The following Word example displays the Microsoft Excel startup path. You can use the Set statement with the Nothing keyword to clear an object variable, which has the same effect as closing the application.
Set myobject = CreateObject("Excel.Application")
MsgBox myobject.StartupPath
Set myobject = Nothing
For information about referencing an object library and using the objects it exposes, see the Understanding Automation and Set a Reference to a Type Library topics.
Using dynamic data exchange (DDE)
If an application doesn't support Automation, DDE may be an alternative. DDE is a protocol that permits two applications to communicate by continuously and automatically exchanging data through a DDE "channel." To control a DDE conversation between two applications, you establish a channel, select a topic, request and send data, and then close the channel. The following table lists the tasks that Word performs with DDE and the methods used to control each task in Visual Basic.
Task | Method |
---|---|
Starting DDE | DDEInitiate |
Getting text from another application | DDERequest |
Sending text to another application | DDEPoke |
Carrying out a command in another application | DDEExecute |
Close DDE channel | DDETerminate |
Close all DDE channels | DDETerminateAll |