Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Call a VB macro from java code

Tags:

java

ms-word

vba

I have a VB macro created. I want to pass the macro a string and a file location. How would I call this in java code. Is there a library for this?

like image 883
Holograham Avatar asked Nov 24 '25 00:11

Holograham


2 Answers

You can run vbscript using the "cscript.exe" that ships with windows.

Depending upon your scenario, you can launch this from Java in a variety of ways:

  • use Runtime.exec to launch the program. You can do this directly as part of your program.
  • use Ant, which has an exec task, or maven which has an exec plugin. This is most useful when invoking the script as part of a build or some other batch process.

EDIT: If your script has a GUI, then use "wscript.exe".

I'm assuming you mean vbscript, but if you reall mean a macro, such as a Word macro, then you will need to do something like this:

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

Alternatively, you can create a small vbscript that instantiates the Word Application and uses the run() method to invoke a macro. You execute that script using cscript.exe/wscript.exe.

like image 183
mdma Avatar answered Nov 25 '25 14:11

mdma


There is the "JACOB - Java COM Bridge" on SourceForge. The project has a second, more dated homepage.

And then there is a commercial (D)COM/ActiveX automation library called J-Integra, which also looks like it could do such a thing.

Disclaimer: Those are just links I've pulled out of Google, I have no practical experience with these libraries.

like image 39
Tomalak Avatar answered Nov 25 '25 14:11

Tomalak