2012年05月11日
OpenOfficeのマクロで参考にしたサイト
しばらく前に小規模事業用の見積・納品・請求書類発行システムというエントリを書き、そこに「参考にしたサイトは別記事に記載の予定」と書いた。これは、さらにその前の記事で「さらに余力があれば、マクロについての解説も付け加えたい」と書いたことを踏まえてのことで、このネタでもう少し続けるつもりでいた。けれど、奇妙なものでいったん必要なファイルが完成してしまうと、急速に情熱は薄れる。作成中には「そうか! こんなヒントはどこかに書いてあれば参考になるな」と、いろんな発見があってブログのネタにする意欲も高かったのに、終わってしまえば「ま、別に自分が書かなくても、そのぐらいはわかるよね」と思ってしまうから人間とは勝手なものだ。
けれど、ソースをもらった先ぐらいは書いておくのが礼儀だと思うから、それらの記憶が完全に消失してしまわないうちに書いておこう。なお、このマクロはその後、私の事務所の運営に活用している。作成中にはあまり不都合に思わなかった仕様が、実際に使ってみると相当にユーザーアンフレンドリーだったりするので、「やっぱりシロウトのつくったものはダメだなあ」と思わないでもないが、まあ、自分のところの必要性は満たせているので、それでいいのかもしれない。
さて、実のところ、ほとんどのコードは、こちらからもらった。
OOoBasic
サイトの名称がちょっと不明なのだけれど、多くのブログで「はにゃさんのサイト」と紹介されている。非常に充実していて、掲示板まで含めればたいていの問題に対する回答が得られる。実際にはほかのサイトも多数(というか無数に)検索で探し出して参考にしたのだけれど、そういうところで得たソリューションを確認しているうち、「なんだ、結局はにゃさんのサイトに書いてあったじゃないか」と気づくことが多かった(というかほとんどだった)。だから、このサイトだけあげておけば十分、という気もする。決して完璧な答えが載っているわけではないけれど、サンプルコードを自分なりに解釈し、試行錯誤すればたいていは解決する。素晴らしい!
もうひとつよく参照したのがこちら。
Macroの杜(Sample Macro)
正直、こちらのサイトは説明抜きのサンプルコードだけで、おまけにそのサンプルコードが動かない場合もあって、決して使いやすくはなかった。けれど、かなり参考にはさせていただいた。というのも、マクロのコードは正解がひとつあるわけではなく、同じ動作をさせるにもいろいろな表現が可能だ。だから複数のサンプルコードを見比べることで、「ああ、なるほど」と、理解が深まる。そういう意味で、たくさんのサンプルを見やすく配列しているこのサイトはありがたかった。
サンプルコードといえば、英語ではあるけれど、このあたりにもある程度のサンプルがまとめてあった。
http://codesnippets.services.openoffice.org/index.xml
http://wiki.bolay.net/doku.php?id=programming:ooo:ooo
もっとも、これらの場所にある程度のサンプルであれば、OpenOfficeのフォーラムを検索すれば見つかることが多かった。
http://www.oooforum.org/forum/
http://user.services.openoffice.org/en/forum/
ただし、フォーラムのページにはGoogle検索でたどり着くことが多かった。
Calcのマクロについては、PDFでまとめられたものも検索で見つけることができた。
http://jacenty.kis.p.lodz.pl/i2cs/openoffice/lab_05b.pdf
基本的にはこれらに掲載されたサンプルコードをベースに必要な変更を加えていくわけだが、やっぱりマクロの基礎、つまりOpenOffice.org Basicを学ばねばならない場合もあった。本来は順序が後先ではあるが、これについてはこちらが公式に近い情報なのだろう。
http://ja.wikibooks.org/wiki/OpenOffice.org_Basic
http://ja.wikibooks.org/wiki/OpenOffice.org_Calc_Basic
このほか、ダイアログボックスに関してはこちら、選択行を1行下げるマクロはこちら、ドロップダウンリストについてはこちら、セル内の関数のマクロでの利用に関してはこちらやこちら、などなど、個別のニーズに応じてあちこちのサンプルコードやチュートリアルを参考にした。結局それらは、最初にあげた「はにゃさんのサイト」をよく見れば書いてあることだったりもしたのだけれど、それはそれで相応の役に立ったことはやはり上記のとおりだ。
以上、簡単ではあったけれど、お礼と備忘を兼ねて記しておく。
皆様、ありがとうございました。Thank you for your advise!