3

Delphi から Word 文書のマクロ (Sub) を実行したいと考えています。

私のWordのマクロは

Sub Macro1()  
  'Do Something
End Sub  

そしてデルファイで

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"');  

「指定されたマクロ
を実行できません」というエラーが表示される

4

2 に答える 2

3

マクロパラメータの値は、通常のパラメータと同じように渡す必要があります。

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

詳細については、Application.Run MethodMSDNのドキュメントを参照してください。

于 2012-07-27T15:20:20.167 に答える
1

マクロコード:

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;
于 2013-03-05T16:43:57.527 に答える