win32ole で Excel を使う(6)
Excel2003 以降、グループ化したオートシェイプに対する操作はそのままではエラーとなるので、一旦解除して操作後に再度グループ化しないといけない。
グループ化されたテキストボックス(図形) から値を取得
# グループ化解除。グループのメンバが戻り値として取得できる grp = sheet.Shapes("グループ 3").Ungroup # 操作を実行 sheet.Shapes("テキスト 1").TextFrame.Characters.Text # 再度グループ化 grp.Group
グループ化されたテキストボックス(図形) に値をセット
# グループ化解除。グループのメンバが戻り値として取得できる grp = sheet.Shapes("グループ 3").Ungroup # 操作を実行 sheet.Shapes("テキスト 1").TextFrame.Characters.Text = "XXX" # 再度グループ化 grp.Group
なおExcel2000まではグループ化したままで操作が可能。