そのため、PowerPoint2007は実際にアプリケーションレベルでイベントハンドラーをサポートしていることがわかりました。たとえばApplication.NewPresentation
、さらにはApplication.AfterNewPresentation
ここで説明されていますhttp://msdn.microsoft.com/en-us/library/ff745073.aspx
しかし、本当の問題は、これらをどのように使用するかということです。どこで使用しますか?私のシナリオを説明するために、私が欲しいのは、動的テキストをいくつかのテキストボックスに挿入することです。私はこれを行うためのマクロコードを持っており、それは私が望むように正確に機能しています。ただし、potmテンプレートから新しいプレゼンテーションが作成されたら、マクロを起動する必要があります。そして、そのイベントでのみ。Word2007と同じように。
どこから始めればいいですか?このようなサブを作成してpotmファイルとして保存し、そのテンプレートに基づいて新しいプレゼンテーションを開くことを試みました。そして何も起こらなかった。
Private Sub App_NewPresentation(ByVal Pres As Presentation)
MsgBox "Running!"
End Sub
編集:XMLエディターで任意のOffice2007ファイルを開くことができます。私はMicrosoftOffice用のカスタムUIエディターを使用しており、次のガイドに従ってOffice2007カスタムUI.XMLパーツを追加しています。http://www.pptalchemy.co.uk/PowerPoint_Auto_Open_Code.html
しかし、PowerPointがそのテンプレートに基づいて新しいプレゼンテーションを作成するときに問題が発生します。テンプレートを開くこと自体は問題なく機能します。イベントハンドラーがあり、コードは美しく実行されます。しかし、それに基づく新しいプレゼンテーション?まさか、ハンドラーもあります。しかし、それはマクロを見つけることができないと言っています。Visual Basic Editorを開いてマクロを見つけて実行できるため、マクロも新しいプレゼンテーションに含まれています。正常に機能していないように見えるのは、自動車部品だけです。