DioDocs for Excel
DioDocs for Excel
図形のグループ化またはグループ解除
機能 > 図形と画像 > 図形のグループ化またはグループ解除

DioDocs for Excel では、ワークシート内の図形をグループ化およびその解除を行うことができます。図形をまとめて特定のアクションを実行する際、図形をグループ化できます。たとえば、グループ化された図形に同じスタイルを適用でき、整列、回転、コピー、または貼り付けることができます。これにより、時間を節約するだけではなく、すべての図形で一貫性の維持を実現できます。

図形のグループ化

IShapeRangeインタフェースのGroupメソッドを使用して、いくつかの図形をグループ化できます。IShapeRangeインタフェースは、グループ化する図形の範囲を表します。グループ化された図形は、単一の図形として動作します。

図形をグループ化する方法については、次のサンプルコードを参照してください。

C#
コードのコピー
// ワークブックを初期化します
Workbook workbook = new Workbook();
// 既定のワークシートを取得します
IWorksheet worksheet = workbook.Worksheets[0];
// アクティブなワークシートの図形コレクションを作成します
IShapes shapes = workbook.ActiveSheet.Shapes;

// 図形コレクションに図形を追加します
IShape ShapeBegin = shapes.AddShape(AutoShapeType.Wave, 10, 10, 100, 100);
IShape EndBegin = shapes.AddShape(AutoShapeType.RoundedRectangle, 200, 200, 100, 100);
// 図形コレクションにコネクタ図形を追加します
IShape ConnectorShape = shapes.AddConnector(ConnectorType.Straight, 10, 10, 101, 101);

// コネクタ図形を使用してShapeBeginおよびEndBegin図形を接続します
ConnectorShape.ConnectorFormat.BeginConnect(ShapeBegin, 3);
ConnectorShape.ConnectorFormat.EndConnect(EndBegin, 0);

// 図形コレクションにIsoscelesTriangle図形を追加します
shapes.AddShape(AutoShapeType.IsoscelesTriangle, 370.8, 50.8, 81.6, 102.0);

// shpRangeコレクションを作成して、配列で指定された特定の図形をグループ化します
IShapeRange shpRange = shapes.Range[new string[3] { shapes[0].Name, shapes[1].Name, shapes[2].Name }];

// 図形をグループ化します
IShape grouped = shpRange.Group();
// グループ化された図形のスタイルを設定します
grouped.Line.Color.RGB = System.Drawing.Color.DarkOrange;
grouped.Fill.Color.RGB = System.Drawing.Color.LightGreen;
Console.WriteLine("Group Name is: " + grouped.Name);


// XLSXファイルに保存します
workbook.Save(@"GroupedShapes.xlsx", SaveFileFormat.Xlsx);

図形のグループ解除

IShapeインタフェースのUngroupメソッドを使用して、指定された範囲内の図形のグループを解除できます。

図形のグループ化を解除する方法については、次のサンプルコードを参照してください。

C#
コードのコピー
// ワークブックを初期化します
Workbook workbook = new Workbook();
// ワークブックを開きます
workbook.Open(@"9-GroupedShapes.xlsx");
IShapes shapes = workbook.Worksheets[0].Shapes;

// 図形のグループ化を解除します
for (int i = 0; i < shapes.Count; i++)
{
    if (shapes[i].Type == ShapeType.Group) // または、  if (shapes[i].Name == "Group 1")
        shapes[i].Ungroup();
}

// または、GroupNameをUngroupメソッドに渡します
// shapes["Group 1"].Ungroup();

// ワークブックを XLSXファイルに保存します
workbook.Save(@"10-UnGroupedShapes.xlsx", SaveFileFormat.Xlsx);