Paradigm Shift Design

ISHITOYA Kentaro's blog.

C#でパワーポイントのログを取る。

備忘録です。


C#からパワーポイントのログを取るには、COMのMicrosoft PowerPoint 12.0 Object Libraryというのを使う必要があります。これは、

  1. プロジェクトメニューから、参照の追加を選択
  2. COMタブを開く
  3. Microsoft PowerPoint 12.0 Object Libraryを選択

という手順で利用できるようになります。


で、このCOMを利用すれば、

Visual C# .NET で PowerPoint のイベントを処理する方法

にあるようにPowerPointのイベントを利用することができます。


本当はこれだけで、終わりっぽいのですが、このイベントハンドラの引数にある

PowerPoint.SlideShowWindow Wn

から、

int page = Wn.View.CurrentShowPosition;
int animation = Wn.View.GetClickIndex();

のようにしてログを取ると、データがきちんととれません。具体的には、animationのインデックスが、常にそのスライドの最大値だったりします。


ので、Timerを使って200msとかでループを回し、

powerpoint.ActivePresentation.SlideWindow.View.CurrentShowPosition;
powerpoint.ActivePresentation.SlideWindow.View.GetClickIndex();

からデータをとるようにしたほうがいいです。