我认为这是一个简单的问题,但我花了几天时间寻找答案,却一无所获。
我有一个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)。激活