从Powershell中调用Microsoft Word VBA代码

3
我使用“录制宏”功能在Microsoft Word 2010中创建了一个宏,用于搜索文档以查找特定的一组单词,并将这些单词插入Excel。
我想在Powershell中调用此宏。
由于脚本存储在Microsoft Word中,是否可以使用Powershell进入Word并执行这些宏,还是必须在Powershell中重新编写宏?
我希望在给定文件夹中运行此宏以处理多个文档。
2个回答

5

这就是解决方法:

$wd = new-object -comobject word.application # create a com object interface (word application)

$wd.documents.open("C:\word\test.doc") # open doc

$wd.run("Macro01") # exec macro named macro01

$wd.quit() # exit application

宏必须保存在 normal.dot(2010 及以上版本的 normal.dotm)中,以便在所有打开的文档中使用。


0
我有一种方法可以从PowerShell运行Word宏:
$WordFile = "Path to Your File.docx"
Start-Process winword.exe -ArgumentList ("/t", "`"$WordFile`"", "/mTheNameOfYourVBAScript") -Wait

根据我的观察,这比创建 Com 对象更快速。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接