2012-01-18

[Ooo]色数をカウントする

Ooocc view

皆様初めまして。

投稿ができるようになりましたので、

記念に書込みします。(かなり前のネタですみません;)

AEとは直接関係なく、工程管理などの製作支援の方の小ネタで、今回は

オープンソースのオフィスソフト「OpenOfficeOrg」(略称:Ooo)

count color関数(セル色を数える)をつける方法です。

ご存知のようにOooは元々サンマイクロシステムズが開発、その後オラクルに買収され

一時期開発停滞?LibreOfficeに分離?といった紆余曲折をへて現在は

Webサーバーで有名なApacheソフトウェア財団とIBMが開発を続けています。

基本的にフリーで使えるオフィスソフトで、デジタルアニメーション等の制作管理工程でも

十分使える機能を持っています。

以前エクセルからこちらのソフトに乗り換えるテストをしていた際に、どうしても

「セル色でカウントしたいけどOooで出来ない」という話が出ていました。

元々エクセルにもその機能は無かったのですが、

アドオンという形で結構使っている方が多かったみたいです。

Oooでも同じようにアドオンやマクロで対応可能です。

アドオンの方はOooは現状敷居が高く、JAVAやC++の知識が要るみたいですが

マクロの方はVBに近い形で記述可能です。

エクセルの方はTipsが公開されていますのでそれらを参考にOooに合わせた記述をします。

今回特に「Addinboxさん」http://www.h3.dion.ne.jp/~sakatsu/index.htm の記事に

非常に助けられましたので、この場をお借りしてお礼を申し上げたいと思います。

Oooでマクロを書くには ツール>マクロ>マクロの管理>(各言語) で行います。

今回は取っ付きやすそうなBasicを選びました。



書類をマクロ付きで配布したいので、書類「.ods」の[Standard]の下に”iro”という

名前をつけて新規作成。「マクロのある場所」にはiro内の関数がリスト表示されています。

一番悩んだのが、

「OOo.Calc / Basic には、引数でセル範囲オブジェクトを受け取る
機能が実装されていない模様」(Addinboxさんの記事より)

実際にOOo.Basic にRange というオブジェクト型が存在しないみたいです。。。多分。

これではセル範囲を取得するという最もスタートの段階でつまずきます。

知らずに何度もexcel風の書き方をしてはエラーで悩んでいました;

(変数の型もexcel表記とは違うものがあるので注意が必要です)

Addinboxさんが作られた Range4SheetFunc を利用させてもらい一発で解決。

あとはVBA同様の記述でカウントする部分を実装して終了です”CountColor”。

Oooの仕様のせいかちょっとアクロバティックな方法になってしまっていますので

詳しくはシートをダウンロードして色々弄ってみて下さい。

おまけ?で文字カラーも排他使用ですが、カウントできるようにしています。

CellColorCalctest3.ods



タグ : , [タグを追加する]


この記事の投稿者について:uftone

フィードバック

1 Star2 Stars3 Stars4 Stars5 Stars
評価がまだありません。この記事はどうでしたか?
Loading...Loading...

コメントをどうぞ!




特集