はじめに

マクロというと処理を自動化するためのように思えますが OpenOffice.org API を利用すればよりいろいろなことができます。もちろん外部から OOo を操作する自動化、一寸した作業を行わせるマクロももちろん書くことができます。
そういった用途以外にもなにか機能を提供したり別のプログラムとやりとりする拡張機能を作成するときにも OOo API を利用します。新しい言語で OOo のマクロを書けるようにすることもできます。OOo での拡張機能はなにか言語で書いたマクロに限りません。テンプレートやスペルチェック辞書なども拡張機能で提供することができます。

ここでは以下のことについては特に取り上げません。

VBA との比較を取り上げない理由の1つに、大抵の VBA 利用者は「なぜ API が違うのか?」という不思議な質問をすることが多いためです。ソフトが違うので中身である API が同じわけではありません。クローンソフトなら別でしょうけれども。現在の OpenOffice.org の Calc には VBA で書かれたコードが動くようにと開発されたオプションもありますがもちろん互換性が完全ではありません。また、OOo Basic でマクロを書くと VBA と比べて非常に遅いといわれることがあります。やり方を変えることである程度速度の改善はみられますが API の呼び出し自体が比較的に遅いために同じ早さにはなりません。また、VBA の互換オプションはラッパー API のためより遅くなります。

SQL を取り上げない理由はそれ自体が1つの言語であるとみなせるくらいに複雑かつデータベースに依存しているためです。

VBA と決別する人にはもう必要のないものですし、SQL ではマニュアルを読んだりほかのところの方が適当です。そもそも著者は両方よくわかりませんし。

本稿では UNO を理解しマクロを書き拡張機能として配布できるようになることを目標とします。

2009年12月