前提:
使用jacob打开的word文件中已有宏。
调用代码如下:
ActiveXComponent word = new ActiveXComponent("Word.Application")
//省略打开文件的步骤
//macroName是word文件中的宏名称,后面可以跟参数,如果需要;
Dispatch.call(word, "Run", macroName);
附带刷新word域的宏(此语句不能刷新目录)
Sub UpdateDomain
Selection.WholeStory
Selection.Fields.Update
End Sub
附带刷新word目录的java语句
Dispatch tablesOfContents = Dispatch.get(doc, "TablesOfContents").toDispatch();
int count = Dispatch.get(tablesOfContents, "Count").changeType(Variant.VariantInt).getInt();
for (int i = 1; i <= count; i++) {
Dispatch tablesOfContent = Dispatch.call(tablesOfContents, "Item", new Variant(i)).toDispatch();
Dispatch.call(tablesOfContent, "Update");
}