C#でPowerPointシリーズ3回目
まだ読んでいない方は前回、前々回の記事をまず読むことをすすめる。
komee.hatenablog.com
komee.hatenablog.com
今回は開いたPowerPointに対して実際にスライドをコピー・移動・削除する方法を書く。
(using PPt = Microsoft.Office.Interop.PowerPoint;) (using Microsoft.Office.Core;) string pptxPath = @"C\sample.pptx"; var app = new PPt.Application(); var pres = app.Presentations; var file = pres.Open(pptxPath, MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoFalse); // ここから file.Slides[1].Duplicate(); file.Slides[1].MoveTo(file.Slides.Count); file.Slides[2].Delete(); // ここまで file.Save(); file.Close();
前回の記事のコードを流用する。
開いたPowerPointファイルにはすでに1枚のスライドを保持しているとする。
つまり、この時点ではスライドの枚数は1枚のみ。
C#でスライドを編集する場合、どのページを使用するかは、以下のようにfile.Slides[]の引数に入れて指定する。
file.Slides[1].Duplicate();
引数は1から始まるので注意。
- 複製
file.Slides[1].Duplicate();
Duplicateメソッドを用いる。
コピーするとスライドの配置場所は、コピー元の次のページになる。
この時点でスライドは2ページとなっている。
- 移動
file.Slides[1].MoveTo(file.Slides.Count);
MoveToメソッドを用いる。
引数としてスライドの何ページ目に移動するかを整数で指定する。
なおページ数のインデックスは1から始まる。プログラマにはわかりにくいが、一般人にはわかりやすくなっている。
今回は引数にfile.Slides.Countを用いてスライドのページ数を取得し、スライドの最後のページに移動するようにした。
この時点でスライドの1ページ目と2ページ目が入れ替わっている。
- 削除
file.Slides[2].Delete();
Deleteメソッドを用いる。
指定されたページのスライドが削除される。
今回は1ページ目が削除された。
結果として最初と同じ状態になってPowerPointは保存された。
今回はこれらコピー・削除・移動だけで僕は作業していたのだが、ページの新規作成も書いたほうがいいよなぁ、と書きながら思ってしまった。
機会があったら調べることにする。