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上で対象の図形を選んで左上の名前欄を修正後、エンターで変更できる。