OpenOffice.org Basicを使ってみた
大学の講義(信号解析)でExcelのVBAマクロを使っているんで、自分のマシン(OpenOffice.orgしか入っていない)で動かそうとVBAとOOo Basicの違いについて調査。まぁ、演習室のMacでVBA使えるExcel入ってるから困りはせんのやけど…。
- OpenOffece.org Basic 研究所: http://oooug.jp/compati/basic/pukiwiki.php?FrontPage
上のページで調査。まず講義のページで配布しているファイルで動かんのは、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:実際OOoでJavaScript(Rhino)使えるし…。