LibreOfficeのCalcのシートで発生するイヴェントには様々なものがあるが、ここではその一つである「セルをマウスでダブルクリック」で起こるイヴェントを処理してみる。
意図したことは「シート上の任意のセルをマウスでダブルクリックするとそのセルの背景色が赤に変わる」である。
【準備】
Calcのシート名を右マウスでクリックすると設定メニュが出る。その一つの「シートイベント」を選択する。イベントの種類を対応するイヴェント処理マクロを繋げる表のなかで「マウスでダブルクリック」を選択。マクロ欄で対応するマクロ名を選択する。
【マクロ】
#coding: utf-8
import uno
import screen_io as ui
doc = XSCRIPTCONTEXT.getDocument()
sheet = doc.Sheets[0]
#
def OnDoubleClicked(event):
CellAddress = event.getCellAddress()
Row = CellAddress.Row
Column = CellAddress.Column
msg = str(Row) + ' ' + str(Column)
cell = sheet.getCellByPosition(Column, Row)
cell.CellBackColor = 0xff0000
ui.Print(msg)
return
One Reply to “Pythonでマクロ(9):Sheetのイヴェントを処理する”