【问题标题】:How to write auto macros in PowerPoint 2013?如何在 PowerPoint 2013 中编写自动宏?
【发布时间】:2016-07-11 03:20:23
【问题描述】:

我正在尝试编写一个宏,当我在 PowerPoint 2013 中打开我的 PowerPoint 演示文稿时会自动执行该宏。 根据this articlethis StackOverflow answer,这可以通过编写名为“Auto_Open”的 VBA 子程序来完成:

Sub Auto_Open()
   MsgBox ("Hello World!")
End Sub

我想,这是一个非常基本的东西,但这仍然对我不起作用。 在信任中心,我启用了所有的宏,并且“信任访问...”也被签入了。

我使用的是 PowerPoint 2013。Microsoft 是否可能不支持 PowerPoint 2013 中的自动宏?我在互联网上没有找到任何关于此的信息,仅适用于Word 2013

【问题讨论】:

  • 您可能会发现Getting Started with VBA in PowerPoint 2010 文章很有帮助。
  • 我的子程序有效。我可以手动运行它。当我打开文件时它不会自动执行。
  • 你需要有一个事件来检测开口,但我在 PPT 2010 中查找并没有找到我所期望的(类似于 Excel 或 Outlook),所以我开始怀疑我会像其他应用程序一样容易......
  • 我也怀疑这是可能的。对于 MS Word,如果我创建一个名为“AutoOpen”的子例程,它就可以正常工作。

标签: vba powerpoint


【解决方案1】:

Auto_Open 子例程会在加载包含它的 ADD-IN 时自动触发,但常规 PowerPoint 文件中的相同子例程不会自动运行。 mvps.org 上的文章并未提出其他建议;它是关于捕获事件然后可以调用您编写的宏的加载项,但同样,它需要加载加载项。

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

【讨论】:

    【解决方案2】:

    在我看来,没有简单的方法可以在 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。您可以使用它们进行预处理、创建菜单项、设置事件处理程序等或在退出时执行清理。

    【讨论】:

      【解决方案3】:

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

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

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

      现在输入一些简单的 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

      【讨论】:

        猜你喜欢
        • 2015-12-04
        • 2023-03-31
        • 1970-01-01
        • 2016-11-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-08
        • 1970-01-01
        相关资源
        最近更新 更多