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

我认为这是一个简单的问题,但我花了数天的时间寻找答案,但还没有结果。

我有一个嵌入到PowerPoint演示文稿中的OLE对象(使用PPT 2010创建)。 我通过插入>对象>从文件创建>显示为图标方法来嵌入它(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)

演示文稿中的其他宏(主要是消息框)以及相同的幻灯片工作,所以我确信它不是权限或其他设置问题。 我正在使用幻灯片,但似乎无法追踪到这个问题。


运行代码时,您可能看到了错误消息; 该错误消息解释了该问题,尽管采用了Microsoft Crypt的方式。 您只能从幻灯片或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).Activate

链接地址: http://www.djcxy.com/p/45681.html

上一篇: How to use VBA in PowerPoint to open an embedded OLE object

下一篇: access 2010 getting max row in excel 2010