見出し画像

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

この記事が気に入ったらサポートをしてみませんか?