Calcのマクロ説明サイトものすごく少ないです。色々実験しないとわからないですね。
ここでは、色々実験してどうなるか試してみたいと思います。
結論から言うと、テトリスのような動きのあるものは無理なようです。
Pythonマクロのテンプレート
import uno, sys
def aaa(args=None):
~~~
~~~
def は必ず必要みたいです。ないとPythonスクリプトを実行できません。
セルに数値を入れる Value 大文字でないとダメ
oCell.Value=1
valueは小文字ダメ
getCellByPosition() VBAとは逆 列・行のの順番
XY座標で考えるとよくわかります。x=列 y=行
for i in range(11):
oCell = oSheet.getCellByPosition(10,i)
oCell.Value=random.randint(0,8)
10は列番号です。
ボタンにマクロ登録すると動かない
このようなエラーが出たときは:(引数が変だと言ってるようです)
oTest() --->> otest(args=None) に変更する
背景色を「塗りつぶしなし」にするには
oCell.CellBackColor=0xff0000 #RGB指定
塗りつぶしなし: -1をいれる
oCell.CellBackColor=-1 #塗りつぶしなし
背景画像(一番うしろにある)の選択方法
「図形描画機能表示」をONにし、2の矢印アイコンで画像を選択します。
セルの幅・高さを取得する
列幅取得
import uno, sys
def aaa(args=None):
oDoc = XSCRIPTCONTEXT.getDocument()
oSheet =oDoc.getCurrentController().getActiveSheet()
oCell=oSheet.getCellByPosition(1,1)
oColumns=oCell.getColumns()
x=oColumns.Width #列幅取得
oCell.Value=x
変な破線が見えるとき:
「ツール」>「オプション」>「Calc」>「表示」>「改ページ」のチェックを外せば消えます。
行の高さ取得
import uno, sys
def aaa(args=None):
oDoc = XSCRIPTCONTEXT.getDocument()
oSheet =oDoc.getCurrentController().getActiveSheet()
oCell=oSheet.getCellByPosition(1,1)
oRows=oCell.getRows()
x=oRows.Height #高さ取得
oCell.Value=x
アクティブセルの番地を取得する
import uno, sys
def aaa(args=None):
oDoc = XSCRIPTCONTEXT.getDocument()
oSheet =oDoc.getCurrentController().getActiveSheet()
oActiveCell =oDoc.CurrentSelection
a=oActiveCell.CellAddress
oActiveCell.String="列番号 "+str(a.Column)+" 行番号 "+str(a.Row)
コメント