【C#】プログラミングでパワーポイントを操作する方法 自動化の基礎

プログラミングでパワーポイントを操作する方法を解説します。
操作する内容としては、スライドをコピペし、複製したスライド内のテキストを「test」と書き換えます。
使用する言語はC#です。

参照の取得

まずはパワーポイントを操作するためのCOMを取得しましょう。

ソリューションエクスプローラーの依存関係を右クリックし「プロジェクト参照の追加」をクリックします。

参照マネージャーが開くので、「Microsoft Office Object Library」と「Microsoft PowerPoint Object Library」を追加しましょう。

以下のようになれば成功です。

これでパワーポイントを操作する準備はできましたので、コードを見ていきましょう。

コード

まず以下のように参照を追加してください。

using PPT = Microsoft.Office.Interop.PowerPoint;

実際に操作するコードが以下です。

var ppt = new PPT.Application().Presentations.Open(
    "test.pptx",
    MsoTriState.msoFalse,
    MsoTriState.msoFalse,
    MsoTriState.msoFalse);

var baseIndex = 1;
var baseSlide = ppt.Slides[baseIndex];

baseSlide.Copy();
ppt.Slides.Paste(baseIndex + 1);

foreach (PPT.Shape shape in ppt.Slides[baseIndex + 1].Shapes)
{
    if (shape.HasTextFrame != MsoTriState.msoTrue)
        continue;

    if (shape.TextFrame.HasText != MsoTriState.msoTrue)
        continue;

    var baseText = shape.TextFrame.TextRange.Text;
    if (string.IsNullOrEmpty(baseText))
        continue;

    shape.TextFrame.TextRange.Text = "test";
}

ppt.Save();
ppt.Close();

コードの解説

1行目

パワーポイントを開きます。
ここではパワーポイントのファイル名を test.pptx としています。

7~8行目

1枚目のスライドを取得します。

10行目

8行目で取得したスライドをコピーします。

11行目

コピーしたスライドを貼り付けます。
これでコピペが完了しました。

13~26行目

複製したスライドの中身(オブジェクト)をループで1つずつ処理していきます。
テキスト形式のオブジェクトの場合のみ文言を「test」と書き換えます。

最後に & 関連書籍

以上になります。

分かりにくいところや、「もっとこうしてほしい」などのご意見がありましたら、ツイッターから連絡いただけると幸いです。
質問に関しても、お気軽にお問い合わせください。

余談ですが、インスタグラムを自動でいいねするコードなども公開しています。
興味があれば見てみてください。

以下は関連書籍です。

コメント

タイトルとURLをコピーしました