如何在PowerPoint中使用VBA打开嵌入式OLE对象



我认为这是一个简单的问题,但我花了几天时间寻找答案,却一无所获。

我有一个OLE对象嵌入到一个PowerPoint演示文稿中(使用PPT 2010创建)。我通过insert>object>create from file>display as icon方法嵌入了它(一个pdf文件),这样它就可以在幻灯片上显示为一个小图标。

我的目标是打开它点击一个形状,其中形状是在不同的幻灯片上的幻灯片上的pdf。pdf在第5张幻灯片上,扳机形状在第6张幻灯片上。目标是在幻灯片观看期间打开它(由于其他原因,它必须通过VBA而不是动画来完成)。

我想下面的方法可以:

Sub OpenMyDoc()
  ActivePresentation.Slides(5).Shapes("My Doc").OLEFormat.DoVerb(1)
End Sub

我已经通过insert>links方法将该宏指定为单击"动作"。

我也尝试了以下变化,没有运气(当我点击触发形状时什么都没有发生):

ActivePresentation.SlideShowWindow.View.Slide.Shapes("My Doc").OLEFormat.DoVerb(1)

我也试过:

With SlideShowWindows(1).Presentation.Slides(5).Shapes("My Doc")
  OLEFormat.DoVerb(1)
End With

我也试过:

ActivePresentation.Slides.Item(5).Shapes.Item("My Doc").OLEFormat.DoVerb(1)

演示文稿中的其他宏(主要是消息框),并且在同一张幻灯片上工作,所以我确定这不是权限或其他设置问题。

我正在使用母版幻灯片,但似乎无法找到问题所在。

您可能在运行代码时看到错误消息;错误信息解释了问题,虽然有点微软的神秘风格。您只能从幻灯片或Notes视图中激活OLE对象。

相反,你可以这样做:

ActivePresentation.Slides(1).Shapes(4).ActionSettings(1).Hyperlink.Follow

其中形状(4)超链接到要启动的PDF。

[编辑]

但是因为超链接不是一个选项,而且因为你必须在幻灯片视图中激活嵌入的对象,所以这里可以使用:

'激活演示窗口"你可能需要确保它在正常视野中ActivePresentation.Windows (1) .Activate

'启动OLE对象:ActivePresentation.Slides (1) .Shapes (1) .OLEFormat。DoVerb (1)

并立即切换回幻灯片放映视图SlideShowWindows(1)。激活

最新更新