从java代码调用VB宏

时间:2010-05-10 19:23:49

标签: java vba word-vba

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

3 个答案:

答案 0 :(得分:2)

您可以使用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执行该脚本。

答案 1 :(得分:1)

"JACOB - Java COM Bridge" on SourceForge。该项目有第二个,more dated homepage

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

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

答案 2 :(得分:0)

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

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