OpenOffice.orgエクステンションを簡単に作れるBasicAddonBuilder

 自分で書いたOpenOffice.orgマクロが、かなりできがよければ他の人にも使ってもらいたいと考えるのは自然なことだろう。無論、Webサイトでコードを公開してもよいのだが、もっとよい方法がある。簡単にインストールできるOpenOffice.orgエクステンションとしてパッケージ化するのだ。

 エクステンションといってもただのzipアーカイブにすぎない。ただし、そこにはマクロ本体に加えてXMLファイルも含まれており、OpenOffice.orgがXMLファイルを用いてパッケージを適切にインストールしてくれる。理屈の上では、これらの必須XMLファイルをテキストエディタで作ることも可能だが、それは茶さじで庭を掘り起こすようなものだ。ありがたいことに、簡単なマウス操作でエクステンションを作成できるツールがある。

 この何とも素晴らしいツールはBasicAddonBuilder(BAB)だ。インストールすると新しいツールバーが追加され、唯一のボタンをクリックすればエクステンション・ビルダ・ウィザードが起動する。だが、ボタンをクリックする前に下準備をしておいた方がよいだろう。まず第一に、エクステンションに追加したいマクロ(複数も可)を独自のライブラリに移動するとよい。そうすれば、BABがシステムの他のマクロに干渉することがなくなる。マクロを独自のライブラリに移動するには、「Tools」→「Macros」→「Organize Macros」→「OpenOffice.org Basic」を選択し、「Organizer」ボタンをクリックする。その後、新しいライブラリを追加し、そこにマクロを移動できる。

 メニュー項目にアイコンを追加したければ、グラフィックファイルも用意する必要がある。エクステンション用の上質のアイコンを探すには、IconLetアイコン検索エンジンを当たってみるとよい。メニュー項目として含めるマクロごとに16×16ピクセルのPNG形式のアイコンが少なくとも1つ必要である。OpenOffice.orgは小(16×16)と大(26×26)のツールバーアイコンをサポートしているので、大アイコンも用意したいところである。

 必要なものがすべて用意できたらエクステンションの作成を始められる。ツールバーの「BasicAddonBuilder」ボタンをクリックしてウィザードを開始し、エクステンションの作成を進めよう。まず、エクステンションに追加するマクロのライブラリを選択する。次に、エクステンションをOpenOffice.orgにどう統合するか決める必要がある。いくつかの選択肢がある。大ざっぱに言って、複数のマクロを含むエクステンションの場合は(メニュー項目が複数必要なので)独自のツールバーかトップレベルのメニューを設け、エクステンションのマクロが1つか2つの場合は「Tools」→「Add-on」メニューか「Help」メニューを使うのがよい。

BasicAddonBuilder_thumb.png
BasicAddOnBuilder

 例として、トップレベルのメニューを作成してみよう。「Add top level menu」チェックボックスをオンにし、「Forward」ボタンをクリックして次のウィンドウに進み、そこでエクステンションのメニュー構造を決める。まずはメニューを作る必要がある。「Menu title」フィールドの隣の「Edit」ボタンをクリックする。表示されたダイアログウィンドウの「Item label」フィールドにメニュータイトルを入力する。いわゆるOfficeコンテキストも指定する必要がある。トップレベルメニューを表示するOpenOffice.orgアプリケーションのことだ。たとえば、当該エクステンションをWriterドキュメントでしか使わないのであれば、「Writer」チェックボックスをオンにする。ここで指定したアプリケーションでだけトップレベルメニューが表示される。

 次はメニュー項目を指定する。「Add menu」ボタンをクリックすると、ダイアログウィンドウが表示される。前のウィンドウと似ているが、指定すべきオプションの数が少し多い。ここではメニュー項目のラベルを指定し、さらにその項目を特定のマクロとリンクする必要がある。「Command」フィールドの隣のボタンをクリックし、ドロップダウン・リストからライブラリを選択し、左側のウィンドウで目的のモジュールを選び、右側のウィンドウで必要なマクロを選択する。

 「Icons」セクションでメニュー項目にアイコンを追加できる。空のアイコンを表す四角形をクリックし、正しいサイズのアイコンを選択する。必要なら、別のサイズのアイコンについてもこのステップを繰り返す。「Office context」セクションでアプリケーションを指定し、OKをクリックする。ほかにもメニュー項目があれば、同じようにして追加する。メニュー項目を論理的なグループに分けるメニューセパレータを追加することもできる。

 希望通りのメニューができたら、「Forward」ボタンをクリックし、エクステンションの説明(省略可)を追加し、「Finish」をクリックすると、.oxtパッケージが生成される。以上でエクステンションは一応完成である。

 こうして作られたエクステンションは、このままでもインストールしたり配布したりできるが、もう1つ追加しておきたいものがある。エクステンションに関する追加情報を記載したdescription.xmlファイルだ。エクステンションの現在のバージョン、必要なOpenOffice.orgのバージョン、ライセンス情報などを記載する。具体的には、テキストファイルを作成し、以下のコードを貼り付ければよい。

<?xml version="1.0" encoding="UTF-8"?>
<description xmlns="http://openoffice.org/extensions/description/2006"
xmlns:d="http://openoffice.org/extensions/description/2006"
xmlns:xlink="http://www.w3.org/1999/xlink">
<identifier value="Extension Name" />
<version value="0.0.1" />
<dependencies>
<OpenOffice.org-minimal-version value="2.1" d:name="OpenOffice.org 2.1"/>
</dependencies>
</description>

 identifier、version、OpenOffice.org-minimal-versionなどのデフォルト値を実際の値に置き換え、description.xmlという名前でファイルを保存し、.oxtパッケージに追加する。エクステンションのインストール時に表示される必須の使用許諾契約を追加したければ、description.xmlファイルの</description>タグの直前に以下のコードを追加する(これはOpenOffice.org 2.3以降でのみ有効)。

<registration>
<simple-license accept-by="user" default-license-id="en-US" suppress-on-update="true" >
<license-text xlink:href="GPL.txt" lang="en-US" license-id="en-US" />
</simple-license>
</registration>

 license-text xlink:href="GPL.txt"が適切なファイル(この例ではGPL.txt)をポイントしていることを確認した上で、指定したファイルを.oxtパッケージに追加する。

Dmitri Popovは、フリーのライターとしてロシア、英国、米国、ドイツ、デンマークのコンピュータ雑誌に寄稿している。

Linux.com 原文