PowerPoint 2007 - 如何使用Application.NewPresentation事件处理程序?

所以我发现PowerPoint 2007确实支持应用程序级别的事件处理程序。例如
Application.NewPresentation
或甚至
Application.AfterNewPresentation
它在这里描述http://msdn.microsoft.com/en-us/library/ff745073.aspx 但真正的问题是,我该如何使用它们?我在哪里使用它们? 为了告诉你我的场景,我想要的是将动态文本插入到几个文本框中。我有宏代码来执行此操作,它正如我想要的那样工作。但是,一旦从potm模板创建新的演示文稿,我需要触发宏。而且只在那个事件上。就像在Word 2007中一样。 我从哪里开始?我试图创建一个看起来像这样的子并将其保存为potm文件并基于该模板打开一个新的演示文稿。什么也没发生。
Private Sub App_NewPresentation(ByVal Pres As Presentation)
    MsgBox "Running!"
End Sub
编辑:可以使用XML编辑器打开任何Office 2007文件。我使用Microsoft Office的自定义UI编辑器,然后按照此处提供的指南添加Office 2007自定义UI.XML部分:http://www.pptalchemy.co.uk/PowerPoint_Auto_Open_Code.html 但是当PowerPoint基于该模板创建新的演示文稿时,我遇到了问题。 打开模板本身就可以了。事件处理程序在那里,代码运行得很漂亮。但基于它的新演示文稿?没办法,处理程序也在那里。但它说它无法找到宏。即使宏也在新的演示文稿中,因为我可以打开Visual Basic编辑器并找到宏然后运行它。它只是汽车配件似乎没有像它应该的那样工作。     
已邀请:
在PowerPoint VBA中创建自动宏的唯一方法是将您的文件作为加载项(.ppa或.ppam - 而不是.pptx / .pptm / .potm / etc)。而创建它的方法是: 创建一个类模块。在顶部 (在任何
Option XXX
之后),放
Public WithEvents App As
Application
然后把你的 以下常规。 创建一个任何名称的模块并放入:
Dim X As New Class1
Sub AutoOpen()
    Set X.App = Application
    ''# Code to create new presentation
End Sub
同样,这不适用于您对.potm的要求。您可以考虑的另一种方法已被折旧,但它仍然有效,即创建一个向导文件。     
创建的演示文稿中的宏无法运行,因为auto_open宏仅适用于插件。根据您的操作方式,您必须重新加载功能区才能在您要运行的新演示文稿中启动事件。     

要回复问题请先登录注册