XL: Visual Basic Examples Using DDE

Last reviewed: February 27, 1998
Article ID: Q141772
The information in this article applies to:
  • Microsoft Excel 97 for Windows
  • Microsoft Excel for Windows 95, version 7.0
  • Microsoft Excel for Windows, versions 5.0, 5.0c

SUMMARY

Dynamic Data Exchange (DDE) is a method you can use to exchange data with another DDE-compliant program. In Microsoft Excel, one way you can use DDE is through a Visual Basic for Applications macro.

MORE INFORMATION

The following macro code provides some simple examples using DDE from Microsoft Excel to Microsoft Word.

Microsoft provides examples of Visual Basic for Applications procedures for illustration only, without warranty either expressed or implied, including, but not limited to the implied warranties of merchantability and/or fitness for a particular purpose. The Visual Basic procedures in this article are provided 'as is' and Microsoft does not guarantee that they can be used in all situations. While Microsoft support engineers can help explain the functionality of a particular macro, they will not modify these examples to provide added functionality, nor will they help you construct macros to meet your specific needs. If you have limited programming experience, you may want to consult one of the Microsoft Solution Providers. Solution Providers offer a wide range of fee-based services, including creating custom macros. For more information about Microsoft Solution Providers, call Microsoft Customer Information Service at (800) 426-9400.

Macro Example 1

To use the first macro, Microsoft Word will either need to be in the PATH statement in the Autoexec.bat file, or Microsoft Word must be running.

  1. Enter the following macro code in a new module sheet.

    Sub Using_DDE1()
    
    ' Dimension the variables.
    
Dim Chan As Integer Dim RequestItems As Variant

' Start a channel to Word using the System topic.
Chan = DDEInitiate("WinWord", "System")

' Requesting information from Word using the Formats item
' this will return a one dimensional array.
RequestItems = DDERequest(Chan, "Formats")

' Uses a FOR loop to cycle through the array and display in a message box.
For i = LBound(RequestItems) To UBound(RequestItems)
    MsgBox RequestItems(i)
Next i

' Terminate the DDE channel.
DDETerminate Chan

End Sub

  • Run the "Using_DDE1" macro.

    A series of message boxes will be displayed with each of the available format types in Microsoft Word.

    Macro Example 2

    To use this second example, Microsoft Word must be in the PATH statement in the Autoexec.bat. To edit the Autoexec.bat, you can use an MS-DOS Editor or Notepad in Windows.

    1. Save a Microsoft Word document, called "ddetest.doc" (without the quotation marks) to the root of your drive C.

    2. Open a new Microsoft Excel workbook and in Sheet1, cell A1, enter "hello"(without the quotation marks).

    3. Enter the following macro code into a new module sheet in this workbook.

      Sub Using_DDE2()
      
      ' Dimension the variables.
      
    Dim PokeRange As Object Dim Chan As Integer

    ' Create an range object to poke.
    
    Set PokeRange = Range("Sheet1!a1")

    ' Initiate a channel to Word using a file as the topic.
    
    Chan = DDEInitiate("WinWord", "c:\ddetest.doc")

    ' Execute a few WordBasic commands.
    
    DDEExecute Chan, "[FileNewDefault]" DDEExecute Chan, "[InsertPara]" DDEExecute Chan, "[InsertPara]"

    ' Pokes the data in A1 into ddetest.doc.
    ' This is not poked into the active document.
    ' The data is placed in the topic that started the DDE conversation.
    ' \StartOfDoc is a predefined bookmark in Word.
    
    DDEPoke Chan, "\StartOfDoc", PokeRange

    ' Terminate the DDE channel.
    
    DDETerminate Chan
    End Sub
    
    

  • Run the "Using_DDE2" macro.

  • Open the "ddetest.doc" document in Microsoft Word.

    Note that the word "hello" (without the quotation marks) is added to the beginning of the document.

    REFERENCES

    "Visual Basic User's Guide," version 5.0, Chapter 10, "Controlling and Communicating with Other Applications"

    "Microsoft Excel/Visual Basic Programmer's Guide," version 7.0, Chapter 10, "Communicating with Other Applications"

    For more information about DDE, click Answer Wizard on the Help menu and type:

       programming with dde
    
    
    In Microsoft Excel, version 5.0, click Contents on the Help menu, select "Programming With Visual Basic" and then click the Search button and type "DDE" (without the quotation marks).


  • Additional query words: 5.00 5.00c 7.00 8.00 XL97 communicate talk send
    Keywords : kbcode kbprg kbhowto
    Version : WINDOWS:5.0,5.0c,7.0,97
    Platform : WINDOWS


    THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

    Last reviewed: February 27, 1998
    © 1998 Microsoft Corporation. All rights reserved. Terms of Use.