OOoのマクロ

bonnie++が出力したやつを処理しようと思ってOOo Clacのマクロをはじめて使ってみようとしたのだが、さっぱり分からない。何かするたびにディスパッチャーにコマンドを投げなければいかないのか?素のCOMオブジェクトにVBscript(VBじゃないよ)でアクセスしてる気分。
値をアクティブなセルに入力するだけでもこれだけかかる。

dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "StringName"
args1(0).Value = "348ms"

dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args1())

この方式だと異なる言語でも同じような書き方で同じ処理ができそうだが書きにくいことこの上ないぞ。

やりたいことは、現在選択しているセルの上3つのセルの中身を読んで末尾の単位をそろえた上で平均とって単位文字列を加えたものを出力するというだけでそう難しいことではない。VBAなら10〜20行で書けるだろう。しかしOOoだと無駄に50行ぐらいになりそうなので素のcsvPythonで処理することにした。