如何在打开PowerPoint演示文稿时自动执行宏?

8
我有一个非常基础的问题,在互联网上找不到答案。在2010版Powerpoint中,我有一个宏,希望每次打开Powerpoint文档时都能执行它。如何实现?
谢谢!

找不到答案?来吧!在谷歌上搜索“powerpoint自动启动宏”,你会得到以下结果:http://www.pptfaq.com/FAQ00741_How_can_I_get_my_code_to_run_automatically_when_a_presentation_opens-.htm - Ocaso Protal
1
当我阅读插件时,我认为这是一种解决明显存在的问题的方法。但你是对的,插件似乎是我唯一的选择。谢谢! - Laurent Crivello
3个回答

5

虽然Auto_Open无法在PowerPoint演示文稿中运行,但是您可以进行仿造。添加一个CustomUI部分到演示文稿,然后使用CustomUI OnLoad回调函数来在演示文稿打开时运行代码。CustomUI部分只需要包含CustomUI标签即可。

从这里获取Custom UI Editor: http://openxmldeveloper.org/articles/customuieditor.aspx

在Custom UI Editor中打开演示文稿。从插入菜单中插入CustomUI部分:

Add a Custom UI part

现在输入一些简单的RibbonX代码,例如:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" 
onLoad="MyOnloadProcedure" >
</customUI>

现在编写您的on-open过程:
Sub MyOnloadProcedure()
    MsgBox "Hello"    
End Sub

如果您同时拥有此代码和Auto_Open过程的添加程序,则Auto_Open先运行。

完全披露:虽然我考虑使用这种方法并在Excel中使用过,但直到我第一次在PPT Alchemy网站上遇到它时,我才使用它:运行PowerPoint打开时的代码


1
我正在使用PowerPoint 2016,所以无法对早期版本进行评估,尽管文档显示此方法适用于PowerPoint 2016、2013、2010、2007版本。此方法不需要任何插件或应用程序钩子来处理事件。
参考链接: https://support.office.com/zh-cn/article/microsoft-office-%E4%BA%A7%E5%93%81%E7%9A%84%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%8F%82%E6%95%B0-079164cd-4ef5-4178-b235-441737deb3a6?ocmsassetID=HA010153889&ui=zh-CN&rs=zh-CN&ad=CN#ID0EAABAAA=PowerPoint,_PowerPoint_Viewer 使用命令行启动PowerPoint并使用/M开关,在启动指定的演示文稿文件时运行PowerPoint指定的宏。
最简单的方法是创建一个PowerPoint应用程序的快捷方式。然后,转到快捷方式的属性窗口,并选择“快捷方式”选项卡。接下来,在目标字段的末尾添加/M开关、演示文稿文件名(包括路径)和要运行的宏的名称(区分大小写且必须是演示文稿的一部分)。双击快捷方式,完成!
例如: 我的演示文稿是C:\ myPPTpres.pptm,宏是Run_Slide_Show,因此我需要在现有文本的目标字段中添加/M“C:\ myPPTpres.pptm”“Run_Slide_Show”。
“C:\ Program Files(x86)\ Microsoft Office \ root \ Office16 \ POWERPNT.EXE” /M“C:\ myPPTpres.pptm”“Run_Slide_Show”
请确保您正在运行一个启用了宏的演示文稿版本(在2016年,它具有.pptm扩展名)。

如果您想使用宏自动启动幻灯片放映,请在宏的开头添加一秒或更长的延迟时间,以允许应用程序完成其启动序列。如果没有这样做,幻灯片放映将会开始,但是应用程序会在完成其启动过程时窃取焦点,将您的幻灯片放映推到后台。


仅仅是为了添加延迟,我最初使用了Windows的sleep函数。这使应用程序完全冻结并且无法工作。要添加延迟,请查看此文章:https://www.myonlinetraininghub.com/pausing-or-delaying-vba-using-wait-sleep-or-a-loop。对于我来说,最后一种解决方案非常有效。 - FRules

0
假设宏的类型与自动事件有关,例如Auto_open()、Auto_close()、Auto_print()等等。为了使Powerpoint在打开Powerpoint文件时执行宏,我们需要包含Powerpoint Add-Ins或另一种选择是将文件保存为.ppa或.ppam格式。
要获取更多详细信息并下载AutoEvents zip文件,请参考链接:http://skp.mvps.org/autoevents.htm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接