C#.jpgのスライドで図形を操作する

図形は、PowerPointプレゼンテーションをより精巧で魅力的なものにするための優れた方法です。 PowerPointには、プレゼンテーションスライドに追加できるさまざまな図形(楕円、線、長方形、コネクタなど)が用意されています。この機能を自動化するために、この記事では、C#を使用してプログラムでPowerPointスライドに図形を追加、複製、および削除する方法について説明します。

PowerPointシェイプを操作するためのC# API

Aspose.Slides for .NETは、.NETアプリケーション内からPowerPointプレゼンテーションを操作するように設計されたC#APIです。他のプレゼンテーション操作機能とともに、APIはPowerPointスライドの図形を操作する簡単な方法を提供します。 APIのDLLをダウンロードするか、NuGetを介してインストールできます。

Install-Package Aspose.Slides.NET

PowerPointの形

Aspose.Slides for .NETは、PowerPointスライドに追加できるさまざまな形状タイプをサポートしています。最も一般的に使用される形状は次のとおりです。

C#を使用してPowerPointスライドに図形を追加する

楕円、線、長方形などの形状を追加するために、Aspose.SlidesはIShapeCollection.AddAutoShape(ShapeType、Single、Single、Single、Single)メソッドを提供します。 ShapeType列挙型を使用すると、追加する形状のタイプを指定できます。以下は、PowerPointスライドに図形を追加する手順です。

次のコードサンプルは、C#を使用してPowerPointスライドに図形を追加する方法を示しています。

// プレゼンテーションファイルを表すPresentationオブジェクトをインスタンス化します
using (Presentation pres = new Presentation("presentation.pptx"))
{
    // 最初のスライドを取得
    ISlide sld = pres.Slides[0];

    // 楕円タイプのオートシェイプを追加します
    sld.Shapes.AddAutoShape(ShapeType.Ellipse, 50, 150, 150, 50);

    // プレゼンテーションを保存する
    pres.Save("presentation.pptx", Export.SaveFormat.Pptx);
}

C#でPowerPointの図形を接続するためのコネクタを追加します

コネクタは、図形を結合するために図形を接続するために使用される線です。コネクタは、直線でも曲線でもかまいません。 PowerPointスライドの2つの図形の間にコネクタを追加する方法を見てみましょう。

  1. Presentationクラスのインスタンスを作成して、新しいプレゼンテーションを作成します。
  2. Presentation.Slides[index]を使用してISlideオブジェクトにスライドの参照を取得します。
  3. 前の例で追加したのと同じように2つの形状を追加し、IAutoShapeオブジェクトでそれらの参照を取得します。
  4. IShapeCollection.AddConnector(ShapeType, Single, Single, Single, Single)メソッドを使用して、新しいIConnectorオブジェクトを作成します。
  5. IConnector.StartShapeConnectedToおよびIConnector.EndShapeConnectedToプロパティを使用して図形を結合します。
  6. IConnector.Reroute()メソッドを呼び出して、最短の自動接続パスを作成します。
  7. Presentation.Save(string, SaveFormat)メソッドを使用してPPTXファイルを保存します。

次のコードサンプルは、C#を使用してPowerPointスライドの図形を接続する方法を示しています。

// プレゼンテーションファイルを表すPresentationオブジェクトをインスタンス化します
using (Presentation pres = new Presentation("presentation.pptx"))
{
    // 選択したスライドの図形コレクションにアクセスする
    IShapeCollection shapes = pres.Slides[0].Shapes;

    // オートシェイプ楕円を追加
    IAutoShape ellipse = shapes.AddAutoShape(ShapeType.Ellipse, 0, 100, 100, 100);

    // オートシェイプ長方形を追加
    IAutoShape rectangle = shapes.AddAutoShape(ShapeType.Rectangle, 100, 300, 100, 100);

    // スライド形状コレクションにコネクタ形状を追加する
    IConnector connector = shapes.AddConnector(ShapeType.BentConnector2, 0, 0, 10, 10);

    // シェイプをコネクタに結合する
    connector.StartShapeConnectedTo = ellipse;
    connector.EndShapeConnectedTo = rectangle;

    // 再ルーティングを呼び出して、図形間の自動最短パスを設定します
    connector.Reroute();

    // プレゼンテーションを保存する
    pres.Save("presentation.pptx", Export.SaveFormat.Pptx);
}

C#を使用してPowerPointスライドの図形を複製する

Aspose.Slides for .NETを使用して、あるPowerPointスライドから別のPowerPointスライドに図形を複製することもできます。この操作を実行する手順は次のとおりです。

  1. Presentationクラスのインスタンスを作成します。
  2. Presentation.Slides[index]を使用してISlideオブジェクトにスライドの参照を取得します。
  3. ISlide.Shapesコレクションを使用してソーススライド形状にアクセスします。
  4. ISlide.Shapesコレクションを使用して、目的のスライド形状にアクセスします。
  5. IShapeCollection.AddClone(ISlide)メソッドを使用して、ソーススライドシェイプコレクションからデスティネーションスライドにシェイプを複製します。
  6. 更新したプレゼンテーションファイルを保存します。

次のコードサンプルは、C#を使用してPowerPointスライド内で図形を複製する方法を示しています。

// プレゼンテーションファイルを表すPresentationオブジェクトをインスタンス化します
using (Presentation pres = new Presentation("presentation.pptx"))
{
    // ソーススライドから形状コレクションを取得する
    IShapeCollection sourceShapes = pres.Slides[0].Shapes;
    ILayoutSlide blankLayout = pres.Masters[0].LayoutSlides.GetByType(SlideLayoutType.Blank);
    ISlide destSlide = pres.Slides.AddEmptySlide(blankLayout);
    
    // 宛先スライドから形状コレクションを取得する
    IShapeCollection destShapes = destSlide.Shapes;
    destShapes.AddClone(sourceShapes[1], 50, 150 + sourceShapes[0].Height);
    destShapes.AddClone(sourceShapes[2]);
    
    // クローン形状
    destShapes.InsertClone(0, sourceShapes[0], 50, 150);

    // プレゼンテーションを保存する
    pres.Save("presentation.pptx", Export.SaveFormat.Pptx);
}

C#を使用してPowerPointスライドから図形を削除する

以下は、PowerPointスライドから図形を削除する手順です。

  1. Presentationクラスのインスタンスを作成して、PPTXファイルをロードします。
  2. Presentation.Slides[index]からISlideオブジェクトに目的のスライドにアクセスします。
  3. 特定のIShape.AlternativeTextで形状を見つけます。
  4. ISlide.Shapes.Remove(IShape)メソッドを使用して形状を削除します。
  5. 更新したプレゼンテーションファイルを保存します。

次のコードサンプルは、C#を使用してPowerPointスライドから図形を削除する方法を示しています。

// プレゼンテーションファイルを表すPresentationオブジェクトをインスタンス化します
using (Presentation pres = new Presentation("presentation.pptx"))
{
    // 最初のスライドを取得
    ISlide sld = pres.Slides[0];

    // 長方形タイプのオートシェイプを追加
    IShape shp1 = sld.Shapes.AddAutoShape(ShapeType.Rectangle, 50, 40, 150, 50);
    IShape shp2 = sld.Shapes.AddAutoShape(ShapeType.Moon, 160, 40, 150, 50);
    
    String alttext = "User Defined";
    int iCount = sld.Shapes.Count;
    for (int i = 0; i < iCount; i++)
    {
        // 形状を取得する
        AutoShape ashp = (AutoShape)sld.Shapes[0];
        if (String.Compare(ashp.AlternativeText, alttext, StringComparison.Ordinal) == 0)
        {
            // 形を取り除く
            sld.Shapes.Remove(ashp);
        }
    }

    // プレゼンテーションを保存する
    pres.Save("presentation.pptx", Export.SaveFormat.Pptx);
}

結論

MS PowerPointでは、スライドをより精巧にするために、さまざまな種類の図形を使用できます。楕円、長方形、線などを使用して、それらを結合するための形状とコネクタを描画できます。この記事では、手順とコードサンプルを使用して、C#を使用してプログラムでPowerPointスライドに図形を追加、複製、および削除する方法について説明しました。 APIについて詳しく知りたい場合は、ドキュメントにアクセスしてください。

関連項目