我已经使用此代码解决了上述问题
Sub OnSlideShowPageChange(ByVal SSW As SlideShowWindow)
If SSW.View.CurrentShowPosition = 2 Then
ActivePresentation.UpdateLinks
End If
End Sub
假设我在节目中有 2 张幻灯片,当在幻灯片 2 上传递时,它将触发更新链接并使用更新的 OLE 链接循环回幻灯片 1。我花了很多时间才读到这一部分,但是当我开始演出时,我无法让它运行。我必须手动按 alt+F8 并单击运行,这样代码就会在每张幻灯片 2 中循环播放。
编辑:终于让它工作而无需运行一次宏。我只是打开PowerPoint并播放节目。当节目通过幻灯片 2 或刚刚开始时,更新会动态更新。现在有一些仍然没有解决这个问题的方法,希望这对你有帮助。
我使用了在http://skp.mvps.org/autoevents.htm找到的 autoevent.zip 。我将 zip 中包含的 AutoEvents.ppa 作为插件安装并在 PPT2007 和 PPT2003 中激活它。然后使用此代码创建一个普通的模块/宏。
Sub Auto_ShowBegin()
ActivePresentation.UpdateLinks
End Sub
Sub OnSlideShowPageChange(ByVal SSW As SlideShowWindow)
'
' AUTO UPDATE OF OLE LINKS MACRO
'
If SSW.View.CurrentShowPosition = 2 Then
ActivePresentation.UpdateLinks
End If
End Sub
你完成了。请确保您以启用宏的格式保存 2003 和 2007 的 powerpoint,这是因为我有两个版本的 ms office。并勾选 ckeck 框说 - 信任对 VBA 项目对象模型的访问。还循环播放您的幻灯片,以便当它通过幻灯片 2 或刚刚开始放映时,它将更新所有 OLE 链接。
如果我错过了什么,请发表评论。希望这可以帮助。