win32ole で Excel を使う(5)

今回はオートシェイプのテキストボックスを扱う方法を書く。


シート内のテキストボックスを取得して、値の取得と設定を行うには以下のようにする。

# "テキスト 1" という名前のテキストボックスを取得する
sheet.Shapes("テキスト 1").TextFrame

# テキストボックスの内容を取得
puts sheet.Shapes("テキスト 1").TextFrame.Characters.Text

# テキストボックスに値をセット
sheet.Shapes("テキスト 1").TextFrame.Characters.Text = "Hello, world!"

テキストボックスのフォント変更・背景色変更の方法は以下の通り。

# フォント変更
sheet.Shapes("テキスト 1").TextFrame.Characters.Font.Name = "MS P明朝"
sheet.Shapes("テキスト 1").TextFrame.Characters.Font.Size = 24
sheet.Shapes("テキスト 1").TextFrame.Characters.Font.Bold = true
sheet.Shapes("テキスト 1").TextFrame.Characters.Font.Italic = true
sheet.Shapes("テキスト 1").TextFrame.Characters.Font.ColorIndex = 25

# 背景色変更
sheet.Shapes("テキスト 1").Fill.ForeColor.SchemeColor = 25

なお、オートシェイプに対して名前を付けるには、Excel上で対象の図形を選んで左上の名前欄を修正後、エンターで変更できる。