2014年6月24日火曜日

OpenOffice Basic で Calc のセルに文字を入れてみる。

 実行前後のスクリーンショット。



 指定したセル A21 へ文字列を入れることが出来た。
 セルの指定が座標 0,20 になっているけれど見た目でわかるように A21 といった形で表現できないだろうか。

 実行したマクロは以下のとおり。

Option VBASupport 1

Sub TEST
Dim Doc As Object
Dim Sheet As Object
Dim NewColumn As Object

Doc = ThisComponent
Sheet = Doc.Sheets.getByName("Sheet7")

Cell = Sheet.getCellByPosition(0, 20)
Cell.String = "0,20"

End Sub


 今回のポイントは二点。

 まずは「Doc = ThisComponent」
 こうすることで Basic IDE から実行してもランタイムエラーが発生しなくなる。
 サンプルでよくある「Doc = StarDesktop.CurrentComponent」だと Basic IDE から実行するとランタイムエラーが発生する。
 プッシュボタンを作らなくてもマクロを実行することが出来るのでとても便利である。

 もう一つは「Sheet = Doc.Sheets.getByName("Sheet7")」
 シートの名称からシートを選択することが出来る。
 当初は getByName が抜けていて何回もマクロを実行しても反応がなかった。
 合っているとの思い込みがあったのでサンプルコードを何度も見返してようやく気がついたという次第。

 次は指定したセルに数字を入れてみよう。


 このマクロで気になっていた Option VBASupport 1 は VBA  コマンドを使えるようにするものらしい。
 目指すは脱 VBA なのでここは 0 にしておこう。

0 件のコメント:

コメントを投稿

MELSECNET/HのリモートI/O局経由のMODBUS(R)通信について

http://fa-faq.mitsubishielectric.co.jp/faq/show/13661  別ネットワークの先にぶら下げるってどういうことだろう。