試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

OpenOffice.orgのマクロをPythonで記述して動かす(Calcのセル操作に関する追加メモ・ページ1/3)

OpenOffice.orgのマクロをPythonで記述して動かす(Calcのアクティブもしくは任意のシートとセルのオブジェクトの取得)」「OpenOffice.orgのマクロをPythonで記述して動かす(Calcのセル内容へのアクセスについてとセル内容の操作に関する例)」の続きとして、セル操作に関する追加のメモをここで扱う。

セルとそのテキストの見栄えに関する各種属性を変更するためのプロパティ

取得したセルオブジェクトに対して特定のメンバ(内部的にはプロパティ)の操作を行うことで、セルの背景色や左寄せ/中央寄せ/右寄せ,中の文字に対する色や太字などのスタイルといった各種属性を変更することができる。
セルに対する各種属性を指定するためのメンバは
http://api.openoffice.org/docs/common/ref/com/sun/star/table/CellProperties.html
に、セル内のテキストに対する各種属性を指定するためのメンバは
http://api.openoffice.org/docs/common/ref/com/sun/star/style/CharacterProperties.html
に、それぞれ一覧(「Properties' Summary」の表)がある。この表の左側のセルの上段にデータの型,下段にプロパティの名前が書かれており、例えばセル内のテキストの前景色を変更するには

[セルオブジェクト].CharColor = [色の値]

のようにする。

色の指定について

上のような色の指定では「::com::sun:」という型を指定することになっている。
リンク先にもあるように、これは内部的にはlong型の整数で、R(赤)/G(緑)/B(青)の各バイトに色の各成分が入る。
Python-UNOのマクロでは「0xXXXXXX」形式の16進表記による指定が便利で、CSSなどで用いられるような6桁の16進表記によって色を指定するのが書きやすい。number sign(#)記号は記述せずに「0x」に続けて値を記述する。

(セルの背景色を完全な黒にする)
[セルオブジェクト].CellBackColor = 0x000000

(セルの背景色を完全な赤にする)
[セルオブジェクト].CellBackColor = 0xff0000

(セルの背景色を完全な緑にする)
[セルオブジェクト].CellBackColor = 0x00ff00

(セルの背景色を完全な青にする)
[セルオブジェクト].CellBackColor = 0x0000ff

(セルの背景色を完全な紫にする)
[セルオブジェクト].CellBackColor = 0xff00ff

(セルの背景色を完全な白にする)
[セルオブジェクト].CellBackColor = 0xffffff

もちろん、赤を指定するのに「16711680」のように10進表記で記述することもできるが、「0xff0000」のほうが確実に分かりやすいのでおすすめはしない。
OOo BasicではRGB()という関数を用いて赤/緑/青の各成分を0-255の範囲で指定するようだが、動作は未確認。なお、このRGB()関数はPythonでは簡単に実装することもできる(ページ2で扱う)。
色を既定の色(指定なしの状態)に指定するには負の値(「-1」など)を入れる。「0」では全ての色成分が0で黒になる。

(セルの背景色を既定の色(指定)にする)
[セルオブジェクト].CellBackColor = -1

(「OpenOffice.orgのマクロをPythonで記述して動かす(Calcのセル内容へのアクセスに関する追加メモ・ページ2/3)」に続く)

関連記事:

使用したバージョン: