![](https://take-web.com/task_help/wp-content/uploads/2022/11/calc_python05.png)
![](http://take-web.com/task_help/wp-content/themes/cocoon-master/images/man.png)
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は列番号です。
ボタンにマクロ登録すると動かない
![](https://take-web.com/task_help/wp-content/uploads/2022/10/err_notMove.png)
このようなエラーが出たときは:(引数が変だと言ってるようです)
oTest() --->> otest(args=None) に変更する
背景色を「塗りつぶしなし」にするには
oCell.CellBackColor=0xff0000 #RGB指定
塗りつぶしなし: -1をいれる
oCell.CellBackColor=-1 #塗りつぶしなし
背景画像(一番うしろにある)の選択方法
![](https://take-web.com/task_help/wp-content/uploads/2022/11/pic_mv05-1-1024x812.png)
「図形描画機能表示」を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
変な破線が見えるとき:
![](https://take-web.com/task_help/wp-content/uploads/2022/11/hasen_page10.png)
「ツール」>「オプション」>「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
![](https://take-web.com/task_help/wp-content/uploads/2022/11/Cell_Height11.png)
アクティブセルの番地を取得する
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)
![](https://take-web.com/task_help/wp-content/uploads/2022/11/activecell_get11.png)
コメント