指定したセル 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 件のコメント:
コメントを投稿