VSTO Excel オートシェイプのグループ化

調べたので、メモ。

Worksheet の Shapes から get_Range にて SharpRange を取得。
んで、SharpRange.Group メソッドを呼び出すとグループ化される。


Worksheet.Shapes プロパティ
Shapes.Range プロパティ
※取得する時は、get_Range で取得するか、インデクサでも取れると思う。(インデクサは試してません)
ちなみに、Range に渡すのは、単一の場合、シェイプの名前か、インデックス(数値)。複数の場合は、object[] 形式にした、シェイプの名前かインデックス(数値)で可能。
注:インデックスアクセスは試したけど、シェイプの名前でのアクセスは試してません。ただ、Excel マクロからは、シェイプの名前でアクセス出来ているので、大丈夫のはず。
ShapeRange.Group メソッド


※追記
ShapeRange インターフェース に ShapeRange の取り方が載ってた。

名前またはインデックス番号を指定して図形の集合を取得する
文書内の図形の集合を表す ShapeRange コレクションを取得するには、Shapes.Range(index) を使用します。引数 index には、図形の名前かインデックス番号、または図形の名前かインデックス番号を含む配列を指定します。名前またはインデックス番号の配列は、Array 関数を使用して作成できます。

ってことで、名前でも取得出来ます。