我认为这是一个简单的问题,但我花了几天时间寻找答案,但还没有 .
我有一个OLE对象嵌入到PowerPoint演示文稿中(使用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)
演示文稿中的其他宏(主要是消息框)和同一幻灯片工作,所以我确定它不是权限或其他设置问题 . 我正在使用主幻灯片,但似乎无法追踪问题 .
1 回答
您运行代码时可能会看到一条错误消息;错误消息解释了问题,虽然有点微软的方式 . 您只能从幻灯片或Notes视图中激活OLE对象 .
相反,你可以这样做:
Shapes(4)超链接到您要启动的PDF .
[编辑]
但由于超链接不是一个选项,并且因为您必须在幻灯片视图中激活嵌入对象,所以这适用于:
'激活演示文稿窗口'您可能需要确保它在正常视图中ActivePresentation.Windows(1).Activate
'启动OLE对象:ActivePresentation.Slides(1).Shapes(1).OLEFormat.DoVerb(1)
'并立即切换回幻灯片放映视图SlideShowWindows(1) . 激活