GP Fault Using DDEExecute with Multiple Commands

ID: Q118974


The information in this article applies to:
  • Microsoft Excel for Windows, versions 4.0, 4.0a, 5.0, 5.0c
  • Microsoft Excel for Windows 95, version 7.0


SYMPTOMS

If you use the dynamic data exchange (DDE) Execute statement to send commands to Microsoft Excel, you receive a general protection (GP) fault if the Execute statement contains multiple commands.


CAUSE

This problem occurs because there is a limit to the number of commands you can send in a single DDEExecute statement. In Microsoft Excel version 4.0, you receive a GP fault if you send more than 127 commands in one DDE Execute statement. In Microsoft Excel version 5.0, you receive a GP fault if you send more than 242 commands in a single DDE Execute statement.

In Microsoft Excel version 5.0c, you receive a GP fault if you send more than 459 commands in a single DDE Execute statement.

In Microsoft Excel for Windows 95, version 7.0, the procedure fails when 195 commands are sent, but you receive a GP fault if you send more than 285 commands.


WORKAROUND

To avoid receiving a GP fault when you use the DDE Execute statement, do not send more than 127 commands to Microsoft Excel in a single Execute statement. Instead, use multiple Execute statements to send the commands. For example, to run a macro and open a file in Microsoft Excel using DDE commands in a Microsoft Word for Windows macro, use the following DDE Execute commands


   DDEExecute channel, "[RUN(" + Chr$(34) + "MACRO1!R1C1" + Chr$(34) + ")]"
   DDEExecute channel, "[OPEN("+ Q$+ "TEST.XLS"+ Q$+")]" 
where channel is the DDE channel number returned by the DDEInitiate statement.

For additional information, see the following article(s) in the Microsoft Knowledge Base:
Q94713 Macros to Create DDE Connections Between WinWord and Excel
Kbcategory: kbinterop

Additional query words: 4.00a gpf err msg officeinterop

Keywords :
Version : WINDOWS:4.0,4.0a,5.0,5.0c,7.0
Platform : WINDOWS
Issue type :


Last Reviewed: September 1, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.