How to call a Word macro with parameters

delphi, ms-word, parameters

Solution

You must pass the macro parameters values just as normal parameters.

word.Run('Macro1', 'Book', 'Pool');  

for more info read the `Application.Run Method` MSDN documentation.

Problem

I want to run a macro (Sub) of a Word document from Delphi. My macro in Word is ``` Sub Macro1() 'Do Something End Sub ``` and in Delphi ``` Word := CreateOleObject('Word.Application'); Word.visible := true; Word.Documents.Open('c:\_3\Doc\2.docm', true, false); word.Run('Macro1'); ``` and works well But when I want to enhance the macro and add parameters as ``` Sub Macro1( param1 as string, param2 as string) 'Do Something End Sub ``` and calling as ``` word.Run('Macro1 "Book", "Pool"'); ``` I get error as "Unable to run the specified macro" How can I call a macro (Sub) with parameters?

Original source