Pythonでマクロ(9):Sheetのイヴェントを処理する

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