Pythonでマクロ(3):セルの属性(文字の色等)を変える

表計算(Calc)のシート画面で条件にしたがって文字の色を変えるマクロである。

10X10のセルには0から100までの数値が書かれている。これは教課目の試験の点数だ。これに対してユーザは及第点を入力する(ui.InputBox関数を使う)。マクロではこの及第点と点数を比較して及第点に及ばないときはこのセルの中の文字を赤にする。

マクロ全体を示す:


#coding: utf-8
import uno
import screen_io as ui
import random

def level_judge_macro( *args):
  doc = XSCRIPTCONTEXT.getDocument()
  sheet = doc.Sheets[0]
  for  i in range(10):
    for j in range(10):
      sheet.getCellByPosition(i,j).Value=random.randrange(101)
#
  level = ui.InputBox('及第点を入力してください')
  level_v = int(level)
  for  i in range(10):
    for j in range(10):
      cell = sheet.getCellByPosition(i, j )
      point_v =int(cell.Value)
      if point_v < level_v:
        cell.CharColor = 0xff0000

  return

セルの属性(文字の色)は
cell.CharColor = 0xff0000
で16進定数で与えた。

InputBoxの実行イメージは:

とラベルの付いた入力窓である。