2012-04-27 16 views
6

PowerPointでSlideShowBeginイベントを使用するためには、あなたがクラスモジュールには次のように設定されている必要があります:内部の非クラスモジュールの、そして、パワーポイントVBA App_SlideShowBegin

Public WithEvents App As Application 

    Private Sub App_SlideShowBegin(ByVal Wn As SlideShowWindow) 
     MsgBox "SlideShowBegin" 
    End Sub 

を、あなたが作成する必要がありますそのタイプのオブジェクトを作成し、アプリケーションをアプリケーションに設定します。今

Dim X As New Class1 

Sub InitializeApp() 
Set X.App = Application 
End Sub 

、私が持っている唯一の問題は、あなたが手動でPowerPointでマクロメニューでInitializeAppと呼ばれていない場合、イベントは動作しません、です。このサブを含むスライドショーの始めに何かが呼び出される前に、このサブメニューを呼び出さなければなりません。

パワーポイントを実行する前にこのサブプログラムを呼び出すにはどうすればよいですか?これを行うより良い方法はありますか?

EDIT:

私はに、Class_Initializeを使用してみましたが、それが唯一それが最初に使用された後に呼び出されるか、Dim X as Class1; X = new Class1

+1

通常、イベントハンドラはアドインの一部としてインストールされます。アドインのロード時に常に実行されるAuto_Openサブルーチンでは、クラスを初期化します。単一のプレゼンテーションにイベントハンドラを含める場合は、マウスにマウスを重ねるかクリックすると、イベントハンドラ内で次のスライドに移動するマクロを起動する図形を含めることができます。 –

+0

これを回答として投稿することができます。なぜなら、これをやり遂げるつもりであるからです。 –

+0

完了。私にそれが働いたことを知らせてくれてありがとう。 –

答えて

1

のような文が通常のイベントハンドラは、アドインの一部としてインストールされていることを確認し、アドインがロードされたときに常に実行されるAuto_Openサブルーチンでクラスを初期化します。単一のプレゼンテーションにイベントハンドラを含める場合は、マウスにマウスを重ねるかクリックすると、イベントハンドラ内で次のスライドに移動するマクロを起動する図形を含めることができます。

+0

トラップされる必要があるほとんどのイベントには問題ありませんが、SlideShowBeginイベントはどうですか?スライドショーが始まるとすぐにコードを実行させたいのですが、このソリューションでは、イベントを認識させるコードをトリガするためにスライドショーを開始する必要があります。 Catch-22のようだ。 – DRC

関連する問題