Microsoft KB Archive/74653

{|
 * width="100%"|

Running Word for Windows Macro from Visual Basic Program

 * }

Q74653

-

The information in this article applies to:


 * Microsoft Word for Windows, versions 1.0, 1.1, 1.1a, 2.0, 2.0a, 2.0a-CD, 2.0b, 2.0c, 6.0, 6.0a, 6.0c
 * Microsoft Word for Windows, version 7.0

-

SUMMARY
It is possible to write a Visual Basic program to communicate with Microsoft Word for Windows using DDE (Dynamic Data Exchange). The following example displays the syntax necessary to run a Word for Windows macro from a Visual Basic application:

Const COLD = 2

Const NONE = 0

Const HOT = 1   Sub Compic2_Click compic2.LinkTopic = &quot;WinWord|system&quot; compic2.LinkMode = COLD a% = DoEvents compic2.LinkExecute [Hellomacro] compic2.LinkMode = NONE End Sub

MORE INFORMATION
The most important part of this macro from the Word for Windows viewpoint is the syntax to communicate with Word for Windows specifically. The command that actually executes the macro is the .LinkExecute command. This is the Visual Basic equivalent of the DDEExecute in Word for Windows. The correct lines of code to run a Word for Windows macro should follow this syntax:

  compic2.LinkTopic = &quot;WinWord|system&quot; compic2.LinkMode= either HOT OR COLD compic2.LinkExecute [Macroname] (you should always close the link as the example does)