LibreOffice Calc Basic フォントや列幅、インデントの設定
LibreOffice Calc Basic
Python スクリプトを使って画像ファイルから取り込んだExif データの csv ファイルを読み込んだときに、シートを整形しようと思ってマクロを作った。
何を言っているのか、わからない。
久しぶりに LibreOffice Calc のマクロプログラムなんかいじったもんだから、思い出すのに時間が掛かってしまった。というか思い出すというよりは、初学者のごとく調べまくった。
何をするものか
ワークシートのフォントを設定する。
列の幅を設定する
インデントを設定する
残念ながらインデントの設定はうまく動かなかった。バグではないかと思う。
A列 幅:2.0 cm
B列 幅:6.2 cm、インデント:3.53 mm
C列 幅:8.0 cm
Sub Format_Cells_for_Exif_data
Dim Sheet0 As Object
Sheet0 = ThisComponent.Sheets(0)
With Sheet0
.CharFontName = "Liberation Mono"
.Columns(0).Width = 2000
.Columns(1).Width = 6400
.Columns(1).ParaIndent = 353 '(in 1/100 mm)
.Columns(2).Width = 8000
End With
End sub
LibreOffice 7.4 SDK API Reference
ParaIndent
セルのコンテンツのインデントを定義する、とある。
単位は、1/100 mm。
最初、単位はポイントだろうと勝手に考えてやっていたので、最初 10 なんて小さい値を設定して、なんだ変わらないなと思っていた。効果がないのかな、なんて。
そうしたら、1/100 mm 単位だった。
で、353 にしたら、インデントできた。
353 というのは、手動で1レベルだけインデントしたときの、値。同じが良いかなと思ったので。
しかし、それはたまたまだったようで、実行しても表示に反映されない問題が発生。内部的には、プロパティーの値は変わっているのに、表示に反映されないのだった。
だから、手動でインデント1ステップ下げると、2ステップ分下がっちゃうみたいなことになった。うまく説明できない。
昔 Windows でたまにあったっけ。
何かの設定がおかしいというのであちこちプロパティーを調べるのだが、どこも間違っていない。で、問題の設定をわざといじって、そして正しく設定しなおす。すると、直ることがあった。
設定を変えたのに反映されないバグ。
t.koba
この記事が気に入ったらサポートをしてみませんか?