我正在尝试创建一个插件(使用PPT VBA),它将能够检测打开的文件是否正在使用某个模板。如果是这样,那么它应该调用在此模板中编程的public sub。
方案如下:我创建了自己的启用宏的PPT模板,我希望此模板的用户安装一个外接程序,以检测他们何时使用此模板打开该模板或PPT文件。我尝试在模板的第一张幻灯片中添加一个具有给定名称的隐藏形状,外接程序可以检查它的auto_open子幻灯片中是否存在。问题是Powerpoint在加载幻灯片文件之前会在auto_open打开的时候执行。我不认为有一个自动事件会在幻灯片加载后触发。
Powerpoint版本是2007及以上,有什么建议吗?
发布于 2016-05-23 00:20:25
根据您要完成的任务,启用宏的模板可能不是正确的方法。如果用户基于模板创建新演示文稿,则新演示文稿将继承模板内容(幻灯片、vba项目等)。如果他们应用模板,他们只会得到格式,而不是内容。
这对你来说可能是问题,也可能不是问题。
由于您还提供了一个插件,因此我倾向于将所有代码放在插件中,并坚持使用普通的POTX (非宏启用型)模板。
在外接程序中,您可以捕获事件,特别是PresentationOpen事件,该事件在用户打开演示文稿时触发。
在我的PPT常见问题网站上有更多关于这方面的信息:
http://www.pptfaq.com/FAQ00004_Make_your_VBA_code_in_PowerPoint_respond_to_events.htm
你会想要把任何“魔术”的形状放在幻灯片母版上或模板中的一个布局(即你测试的形状,以确保它是你的模板,而不是其他的)。
https://stackoverflow.com/questions/37372104
复制相似问题