CalcでゲームをPythonで作れるか

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)

コメント

タイトルとURLをコピーしました