如何使用参数调用Word宏

时间:2012-07-27 07:41:39

标签: delphi parameters ms-word

我想从Delphi运行Word文档的宏(Sub)。

我在Word中的宏

Sub Macro1()  
  'Do Something
End Sub  

和Delphi

Word := CreateOleObject('Word.Application');  
Word.visible := true;  
Word.Documents.Open('c:\_3\Doc\2.docm', true, false);  
word.Run('Macro1');  

并且效果很好 但是,当我想增强宏并添加参数

Sub Macro1( param1 as string, param2 as string)  
 'Do Something  
End Sub  

并呼叫为

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

我得到的错误是 "无法运行指定的宏"
如何用参数调用宏(Sub)?

2 个答案:

答案 0 :(得分:2)

您必须将宏参数值作为普通参数传递。

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

有关详细信息,请阅读Application.Run Method MSDN文档。

答案 1 :(得分:0)

宏代码:

Sub TestParams(param1 As String)
   MsgBox "Param1 := enter code here" & param1
End Sub

对我来说,这对我来说也是一场噩梦,因为只要您创建带有参数的宏,它就不会显示在宏列表中。

我最终通过以下方式开始工作 德尔福代码:

procedure TUtils.RunMacro;
var Test : olevariant;
begin
  Test := 'Hello Word';
  WordApplication.Run('TestParams',Test);
end;