JavaからExcelマクロを呼び出す
今日、現場でJavaからエクセルマクロを呼び出せるのか?
という質問があったので少し、調べた。
とりあえず、簡単にまとめる。
1.適当なところにExcelファイルを作成
例:C:\test\test.xls
2.作成したエクセルファイルを開く
3.Alt + Shift + F11 でVBA画面を開く
4.左上の中から「ThisWorkBook」を選択
5.以下のコードを書いて保存
Private Sub Workbook_Open() MsgBox "Hello, World!" End Sub
6.作成したエクセルファイルを閉じる
7.javaから先ほど作成したエクセルを呼び出すサンプル
public static void main( String[] args ) { try { Runtime runtime = Runtime.getRuntime(); Process proc = runtime.exec( "cmd /C /MIN start C:\\test\\test.xls /e" ); proc.waitFor(); } catch (InterruptedException ev) { System.out.println( "失敗(InnterruptedException)" ); } catch (IOException ev) { ev.printStackTrace(); System.out.println( "失敗(IOException)" ); } }
実行するとエクセルが立ち上がり、Hello, World!とダイアログが表示される。
ちょっと調べただけ + VBAをあまり触ったことないのでとりあえずこんな感じ。
結論で言うと、JavaからExcelマクロを呼び出すことはできる?
なんかファイル開いてるだけのようなきがする・・・。
あんまりしっくりきていないので
後日もうちょっと突っ込んで調べてみよう。
エクセルファイルを開かずにマクロ呼び出す方法とかあんのかな?