首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VBA Powerpoint如何Macro_BeforeRun?

VBA Powerpoint如何Macro_BeforeRun?
EN

Stack Overflow用户
提问于 2022-10-14 05:22:22
回答 1查看 30关注 0票数 0

是否有可能触发事件。在宏∀VBA模块运行之前保存文档?

EN

回答 1

Stack Overflow用户

发布于 2022-10-14 08:29:48

如果您的问题是“如何在保存演示文稿之前触发事件”,则答案如下。这是一个多步骤的过程。

  1. 添加一个名为CEvents的类模块(不是标准模块),并向其添加以下代码:

代码语言:javascript
复制
Dim WithEvents ppApp As PowerPoint.Application

Sub Initialise()
    Set ppApp = PowerPoint.Application
End Sub

Private Sub ppApp_PresentationBeforeSave(ByVal Pres As Presentation, Cancel As Boolean)
    MsgBox "Before save for " & Pres.Name
End Sub

https://stackoverflow.com/a/38295674/11318818

  1. 遵循这个过程,如下所述

在放置Dim mEvents As CEvents过程的标准模块中添加模块级声明:Dim mEvents As CEvents

  1. MyOnloadProcedure()过程中,将MsgBox "Hello"替换为:

代码语言:javascript
复制
Set mEvents = New CEvents
mEvents.Initialise

  1. 保存您的演示文稿(必须启用宏(如.pptm) )。关闭并重新打开你的演示文稿。单击“保存以测试”,您将看到消息框.

请注意,一旦您对VBA代码进行模块级编辑,PresentationBeforeSave事件将停止触发,直到您关闭并重新打开演示文稿.这是因为模块级变量在进行此类编辑时处于松散状态,然后在重新打开演示文稿时重新设置状态。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74064630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档