6

In order to use the SlideShowBegin event in Powerpoint, you have to have a Class Module configured the following way:

Public WithEvents App As Application

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

Then, inside of a non-class module, you have to create an object of that type and set the App to Application.

Dim X As New Class1

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

Now, the only issue I have is, if you don't manually called InitializeApp with the Macro Menu in Powerpoint, the events don't work. You have to call this sub before anything can called at the beginning of a slideshow INCLUDING this sub.

How can I go about calling this sub before running my powerpoint? Is there a better way to do this?

EDIT:

I've tried using Class_Initialize but it only gets called once it is first used or you make a statement like Dim X as Class1; X = new Class1

4

3 に答える 3

1

通常、イベント ハンドラーはアドインの一部としてインストールされます。ここで、アドインの読み込み時に常に実行される Auto_Open サブルーチンでクラスを初期化します。1 つのプレゼンテーションにイベント ハンドラーを含めたい場合、それを初期化する 1 つの方法は、マウスを重ねたりクリックしたりすると、イベント ハンドラーを初期化して次のスライドに移動するマクロを起動する図形を含めることです。

于 2012-04-30T19:07:23.587 に答える