Uses an open dynamic data exchange (DDE) channel to request information from the receiving application, and returns the information as a string.
Security Dynamic data exchange (DDE) is an older technology that is not secure. If possible, use a more secure alternative to DDE, such as object linking and embedding (OLE).
expression.DDERequest(Channel, Item)
expression Optional. An expression that returns an Application object.
Channel Required Long. The channel number returned by the DDEInitiate method.
Item Required String. The item to be requested.
Remarks
When you request information from the topic in the server application, you must specify the item in that topic whose contents you're requesting. In Microsoft Excel, for example, cells are valid items, and you refer to them by using either the "R1C1" format or named references.
Microsoft Excel and other applications that support DDE recognize a topic named "System." Three standard items in the System topic are described in the following table. Note that you can get a list of the other items in the System topic by using the SysItems item.
Item in System topic | Effect |
---|---|
SysItems | Returns a list of all the items in the System topic. |
Topics | Returns a list of all the available topics. |
Formats | Returns a list of all the Clipboard formats supported by Word. |
Example
This example opens the Microsoft Excel workbook Book1.xls and retrieves the contents of cell R1C1.
Dim lngChannel As Long
lngChannel = DDEInitiate(App:="Excel", Topic:="System")
DDEExecute Channel:=lngChannel, Command:="[OPEN(" & Chr(34) _
& "C:\Documents\Book1.xls" & Chr(34) & ")]"
DDETerminate Channel:=lngChannel
lngChannel = DDEInitiate(App:="Excel", Topic:="Book1.xls")
MsgBox DDERequest(Channel:=lngChannel, Item:="R1C1")
DDETerminateAll
This example opens a channel to the System topic in Microsoft Excel and then uses the Topics item to return a list of available topics. The example inserts the topic list, which includes all open workbooks, after the selection.
Dim lngChannel As Long
Dim strTopicList As String
lngChannel = DDEInitiate(App:="Excel", Topic:="System")
strTopicList = DDERequest(Channel:=lngChannel, Item:="Topics")
Selection.InsertAfter strTopicList
DDETerminate Channel:=lngChannel