GP Fault Using DDEExecute with Multiple Commands (118974)



The information in this article applies to:

  • Microsoft Excel for Windows 95
  • Microsoft Excel for Windows 5.0c
  • Microsoft Excel for Windows 4.0a

This article was previously published under Q118974

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.


Modification Type:MinorLast Reviewed:8/15/2005
Keywords:KB118974