从java代码调用VB宏

我创建了一个VB宏。 我想传递宏的字符串和文件位置。 我如何在java代码中调用它。 这个库有吗?

您可以使用Windows附带的“cscript.exe”运行vbscript。

根据您的方案,您可以通过各种方式从Java启动它:

  • 使用Runtime.exec启动该程序。 您可以直接将其作为计划的一部分。
  • 使用具有exec任务的Ant,或者具有exec插件的maven。 在将脚本作为构建或其他批处理过程的一部分调用时,这非常有用。

编辑:如果您的脚本有GUI,则使用“wscript.exe”。

我假设你的意思是vbscript,但如果你的意思是一个宏,比如一个Word宏,那么你需要做这样的事情:

"C:\Program Files\Microsoft Office\Office12\Winword.exe" "C:\MyPath\MyDoc.doc" /m"Macro1" 

或者,您可以创建一个小的vbscript来实例化Word应用程序并使用run()方法来调用宏。 您使用cscript.exe / wscript.exe执行该脚本。

SourceForge上有“JACOB – Java COM Bridge” 。 该项目有一个第二个更加过时的主页 。

然后有一个名为J-Integra的商业(D)COM / ActiveX自动化库,看起来它也可以做这样的事情。

免责声明:这些只是我从谷歌退出的链接,我对这些库没有实际经验。

我们正在使用Com4J,它为我们创建了一组Java类,它们看起来与Word VBA中可用的ActiveX类相同,并直接调用它们。 这显然只适用于Windows机器,因为Word不能在Linux上运行(除非你有足够的时间和Wine)。

通过在Java中准备好这些API,我们可以调用word中定义的任何宏。