前提:
使用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");
}