OpenOffice.org Basicを使ってみた

大学の講義(信号解析)でExcelVBAマクロを使っているんで、自分のマシン(OpenOffice.orgしか入っていない)で動かそうとVBAOOo Basicの違いについて調査。まぁ、演習室のMacVBA使えるExcel入ってるから困りはせんのやけど…。

上のページで調査。まず講義のページで配布しているファイルで動かんのは、Range関数が使えないということに尽きた。あとOffset関数。
OOoBではスプレッドシートにはJavaScriptを彷彿とするようなアクセスの仕方をせんといかんらしい。*1例えばA1にアクセスするには、

Dim oSheet As Object
Dim oRange As Object
oSheet = ThisComponent.CurrentController.ActiveSheet
oRange = oSheet.getCellRangeByName("A" & 1)
With oRange
    .clearContents(255)
    .Value = 1
End With

みたいなことをするらしい。筋は通ってるが面倒臭いなこれ。しかし、with構文なんて昔使ってたDelphi6以来や…。
Offset関数は、今回は「一つ右の列の指定」に使われているだけやったんで、指定方法をgetCellByPositionで座標で指定するようにした。これは表記と違って0から始まるんで、初期値と終端値には注意が必要かもしれん。というか一回間違った。
まぁややこしいことはせんやろうし、当面この程度でなんとかなりそう。

*1:実際OOoJavaScript(Rhino)使えるし…。