目次 |
---|
はじめに
前回は、お試し的にC#でPowerPointのファイルを開いてスライドを複製してみました。
今回は、もう一歩踏み込んで、スライド内のオブジェクト(Shapeなど)を取得してみます。
雛型ファイル(.pptx)の用意
まずは、前回と同様に雛型ファイルを用意します。
今回は、以下のようにいくつかのオブジェクトを適当に配置しました。
どんな情報が取得できるかわからないので、とりあえずテキストが設定できるものはテキストを入れておきました。
フォームの改造
前回作ったフォームを少し改造してみます。
今回は、以下のようなフォームにしました。
改造点は、フォームサイズを縦長にしたことと、オブジェクトの情報を取得するボタンを追加し、ログ表示領域を大きくしたことです。
コードの追加
前回のコードに対して、以下のコードを追加しました。
まず
using PPt = Microsoft.Office.Interop.PowerPoint; |
を追加しました。これでPowerPointに関する各種のクラスやインターフェース情報をPPt使って参照できます。そして、追加したボタンのイベントのところに、以下のコードを追加しました。
処理内容としては、1ページめのスライドのすべてのShapeオブジェクトについて、プロパティ値を取得してログ表示領域に出力する、というものです。
すべてのコードは、以下のようになります。
スライド内オブジェクトの取得
では実際にページ内オブジェクトの取得を行ってみます。
実行結果は、以下のようになりました。
この出力結果は、以下の通りでした。
各Shapeには、それぞれの形状に応じたAutoShapeTypeが指定されています。
Shapeには、下図のように多くの種類がありますが、それぞれ異なるAutoShapeTypeになっていると思います。(全部やっていないので憶測ですが)
なお、画像を1枚貼っていましたが、これは「msoShapeRectangle」となっているようです。単なるテキストも同じみたいですね。
ここまでで、Shapeの情報取得ができることがわかりました。
まとめ
今回は、スライド内のオブジェクト(Shapeなど)を取得してみました。
ここまでできれば、Shapeをテキストなどで特定してプロパティ値を変更すれば、様々な編集ができるようになりそうですね。
次回は、Shapeの属性変更など、実際の編集を行ってみたいと思います。