Powerpoint VBA App_SlideShowBegin

Kyl*_*ven 6 events powerpoint vba

要在Powerpoint中使用SlideShowBegin事件,您必须按以下方式配置类模块:

Public WithEvents App As Application

    Private Sub App_SlideShowBegin(ByVal Wn As SlideShowWindow)
        MsgBox "SlideShowBegin"
    End Sub
Run Code Online (Sandbox Code Playgroud)

然后,在非类模块内部,您必须创建该类型的对象并将App设置为Application.

Dim X As New Class1

Sub InitializeApp()
Set X.App = Application
End Sub
Run Code Online (Sandbox Code Playgroud)

现在,我唯一的问题是,如果您没有使用Powerpoint中的宏菜单手动调用InitializeApp,则事件不起作用.你必须先调用这个子,然后才能在幻灯片的开头调用包含这个子的东西.

在运行我的powerpoint之前,如何调用此sub?有一个更好的方法吗?

编辑:

我已经尝试过使用Class_Initialize,但只有在第一次使用它时才会被调用,或者你会发出类似的语句 Dim X as Class1; X = new Class1

Ste*_*erg 1

通常,事件处理程序作为加载项的一部分安装,您可以在 Auto_Open 子例程中初始化该类,该子例程始终在加载项加载时运行。如果您想在单个演示文稿中包含事件处理程序,使其初始化的一种方法是包含一个形状,当将鼠标悬停在该形状上或单击该形状时,会触发一个宏,该宏会初始化您的事件处理程序并转到下一张幻灯片。