OpenOffice.orgのマクロには、他のプログラムを起動するShell関数が用意されています。このShell関数を使うと、OpenOffice.org内で実行されているマクロからOSにインストールされているプログラムを起動し、引数を渡すことが可能です。
OpenOffice.orgと他アプリケーションの連携を取るのに使えそうですね。

Shell関数の一番簡単な使い方は

Shell コマンド名

という形です。試しにCalcなどOpenOffice.orgアプリを起動したら、マクロ編集画面を開き適当なプログラムを起動してみてください。たとえば、Windows上なら

Sub Main

Shell "notepad"

End Sub

とするとノートパッドを起動することが出来ます。

また、引数を追加すると起動時のウインドウスタイルの指定が可能になり

Sub Main

Shell "notepad", 2

End Sub

とすれば最小化(アイコン化)された状態で起動されます。起動スタイルを指定する数値は、OpenOffice.orgのヘルプに詳細が載っているので確認しておきましょう。

さらに、Shell関数に三番目の引数を追加すると、起動プログラムに引数を渡せます。d:\test.txtというファイルをノートパッドに渡す(開く)には

Sub Main

Shell "notepad", 1, "d:/test.txt"

End Sub

のようにするわけです。

マクロの内部から他のプログラムを起動できるようになれば、「マクロで処理した結果をファイルに保存する」「保存したファイルを他のアプリケーションに渡してさらに処理する」といったアプリケーション間の連携も可能になりますね。OpenOffice.orgとBasicマクロの機能を利用してデータファイルを読み込み処理した後に、他のアプリケーションに蓄積する……そんな一連の流れを自動的に行うシステムを開発できれば、データの前処理を一気に省力化できるかもしれません。

Shell関数に四番目の引数としてTrueを渡すと、「処理が終わるまで待機」することもできるので、バッチ的な処理を繰り返すことも出来そうです。


創作プログラミングの街 > OpenOffice.orgマクロ開発メモ