如何在PowerPoint 2013中编写自动宏?

时间:2015-05-22 08:26:07

标签: vba powerpoint powerpoint-vba

我试图编写一个在PowerPoint 2013中打开PowerPoint演示文稿时自动执行的宏。 根据{{​​3}}和this article,这可以通过编写名为" Auto_Open"的

的VBA子例程来完成。
A1

我想,这是一个非常基本的东西,但这对我来说仍然不起作用。 在信任中心,我启用了所有宏,以及"信任访问..."也签入。

我正在使用PowerPoint 2013.微软是否有可能不支持PowerPoint 2013中的自动宏?我还没有在互联网上找到有关此内容的任何信息,仅适用于this StackOverflow answer

3 个答案:

答案 0 :(得分:1)

当加载包含ADD-IN的ADD-IN时,Auto_Open子例程将自动触发,但常规PowerPoint文件中的相同子例程将不会自动运行。 mvps.org上的文章没有暗示其他情况;它是关于一个捕获事件的加载项,然后可以调用你编写的宏,但同样,它需要加载一个加载项。

加载项可以捕获表示打开和其他事件,并且可以触发检查演示文稿的代码以确定是否应该进行进一步处理... IOW,它可以检查这是否是您的演示文稿或某些随机的(它不应该触摸)。

答案 1 :(得分:0)

在我看来,没有简单的方法可以在PowerPoint中自动运行宏。

可以使用Auto_Open运行宏,但功能非常有限。

1.使用代码创建* .pptm文件:

Sub Auto_Open()
MsgBox "Hello"    
End Sub

2.将文件保存为加载项 - > * .ppam

3.打开PowerPoint文档并添加此加载项

每次运行PowerPoint时都会自动运行此加载项。在加载项中工作Auto_Open:)

写关于“小功能”的写作我的意思是(http://skp.mvps.org/ppafaq.htm#14):

  

在加载项中自动触发两个宏。 Auto_Open和Auto_Close。加载加载项时会触发Auto_Open,卸载加载项时会触发Auto_Close。您可以使用它们进行预处理,创建菜单项,设置事件处理程序等,或在退出时执行清理。

答案 2 :(得分:0)

虽然Auto_Open不在PowerPoint演示文稿中运行,但您可以伪造它。将CustomUI部件添加到演示文稿,然后使用CustomUI OnLoad回调在演示文稿打开时运行代码。 CustomUI部分只需要CustomUI标签。

从此处获取自定义用户界面编辑器:http://openxmldeveloper.org/articles/customuieditor.aspx

在自定义UI编辑器中打开演示文稿。从“插入”菜单中插入CustomUI部件:

Add a Custom UI part

现在输入一些简单的RibbonX代码,如下所示:

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

现在写下你的开放程序:

Sub MyOnloadProcedure()
    MsgBox "Hello"    
End Sub

如果在加载项中同时具有此和Auto_Open过程,则首先运行Auto_Open。​​

完全披露:虽然我想过使用这种方法并在Excel中使用它,但直到我第一次在PPT Alchemy网站上遇到它:Run Code When PowerPoint Opens