在已经打开的情况下设置PowerPoint演示文稿(从Excel)

大卫·G

我正在尝试打开由用户在Excel中确定的特定PowerPoint幻灯片。以下是将Powerpoint打开到特定幻灯片的代码(targ是类似于的字符串"Slide:12"):

Function rcFollowSlide(targ As String)
    Dim PptPath As String
    Dim pptApp As PowerPoint.Application
    Dim pptPres As PowerPoint.Presentation

    targ = Mid(targ, InStr(targ, ":") + 1)
    targ = Left(targ, Len(targ) - 1)
    PptPath = wsSettings.Range("PPTPath").Value

    If IsPPTOpen(PptPath) Then
        MsgBox "Already opened"
        Exit Function
        'Set ppres =
    Else
        Set pptApp = CreateObject("Powerpoint.Application")
        Set pptPres = pptApp.Presentations.Open(PptPath)
    End If

    If targ > 0 And targ <= pptPres.Slides.Count Then
        pptPres.Slides(CInt(targ)).Select
    Else
        MsgBox "Image " & targ & " N/A."
    End If
End Function

当演示文稿关闭并且必须将其打开时,它可以很好地工作。我也想在Powerpoint演示文稿也已打开的情况下将其设置为pptPres,因此我可以使代码继续运行而无需打开该演示文稿的新实例。首先如何访问应用程序并设置演示文稿?

作为参考,以下是用于检查PPT是否已打开的功能。

Function IsPPTOpen(FileName As String)
    Dim ff As Long, ErrNo As Long

    On Error Resume Next
    ff = FreeFile()
    Open FileName For Input Lock Read As #ff
    Close ff
    ErrNo = Err
    On Error GoTo 0

    Select Case ErrNo
    Case 0:    IsPPTOpen = False
    Case 70:   IsPPTOpen = True
    Case Else: Error ErrNo
    End Select
End Function
戴维·泽门斯

我认为应该这样做:

If IsPPTOpen(PptPath) Then
    Set pptPres = pptApp.Presentations(Dir(PptPath))
    'Set ppres =
    Exit Function
Else

如果您需要激活演示文稿,请尝试:

VBA.AppActivate (Dir(PptPath))    

如您所注意到的,这在某些情况下也可能有效(请参阅下面的Thierry评论)。

PPTApp.Activate
PPTPres.Activate

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在没有模板视图的情况下打开新的PowerPoint演示文稿

来自分类Dev

设置Powerpoint演示文稿的语言

来自分类Dev

Excel 更新 PowerPoint 演示文稿

来自分类Dev

在Excel中如何在不切换焦点的情况下更改活动的PowerPoint演示文稿?

来自分类Dev

打开PowerPoint演示文稿并隐藏窗口

来自分类Dev

如何在已经打开多个窗口的情况下打开Terminator

来自分类Dev

如何在已经打开多个窗口的情况下打开Terminator

来自分类Dev

如何在Excel VBA中获取打开的PowerPoint演示文稿的处理程序

来自分类Dev

从Access VBA打开PowerPoint演示文稿的特定幻灯片

来自分类Dev

使用VBA和Excel生成Powerpoint演示文稿

来自分类Dev

IOUSBInterfaceInterface 已经打开

来自分类Dev

在NSInteger的情况下设置密钥的值

来自分类Dev

如何在不打开编辑器的情况下设置svn:ignore?

来自分类Dev

是否可以在不打开防火墙的情况下设置链接的“链接服务器”?

来自分类Dev

如何在不打开编辑器的情况下设置svn:ignore?

来自分类Dev

如何在打开cv的情况下设置透明背景以抓取输出图像?

来自分类Dev

将新模板应用于Mac上已经存在的PowerPoint演示文稿

来自分类Dev

VBA,Excel如何在不使用样式名称的情况下设置特定样式?

来自分类Dev

获取PowerPoint演示文稿的当前缩放

来自分类Dev

回形针:如何上载Powerpoint演示文稿文件

来自分类Dev

从Word VBA编辑PowerPoint演示文稿页脚

来自分类Dev

删除Powerpoint演示文稿中的命名对象

来自分类Dev

循环播放Powerpoint演示文稿的选定部分

来自分类Dev

回形针:如何上载Powerpoint演示文稿文件

来自分类Dev

Excel VBA无法在Office 2016中将SaveAs嵌入式PowerPoint演示文稿保存

来自分类Dev

如何将多个 Excel 图表粘贴到 PowerPoint 演示文稿中?

来自分类Dev

在不打开防火墙上的传入端口(仅传出端口)的情况下设置反向代理

来自分类Dev

录制PowerPoint演示文稿时如何获得演示者视图?

来自分类Dev

在没有ActivePresentation的情况下关闭所有后台演示文稿

Related 相关文章

  1. 1

    在没有模板视图的情况下打开新的PowerPoint演示文稿

  2. 2

    设置Powerpoint演示文稿的语言

  3. 3

    Excel 更新 PowerPoint 演示文稿

  4. 4

    在Excel中如何在不切换焦点的情况下更改活动的PowerPoint演示文稿?

  5. 5

    打开PowerPoint演示文稿并隐藏窗口

  6. 6

    如何在已经打开多个窗口的情况下打开Terminator

  7. 7

    如何在已经打开多个窗口的情况下打开Terminator

  8. 8

    如何在Excel VBA中获取打开的PowerPoint演示文稿的处理程序

  9. 9

    从Access VBA打开PowerPoint演示文稿的特定幻灯片

  10. 10

    使用VBA和Excel生成Powerpoint演示文稿

  11. 11

    IOUSBInterfaceInterface 已经打开

  12. 12

    在NSInteger的情况下设置密钥的值

  13. 13

    如何在不打开编辑器的情况下设置svn:ignore?

  14. 14

    是否可以在不打开防火墙的情况下设置链接的“链接服务器”?

  15. 15

    如何在不打开编辑器的情况下设置svn:ignore?

  16. 16

    如何在打开cv的情况下设置透明背景以抓取输出图像?

  17. 17

    将新模板应用于Mac上已经存在的PowerPoint演示文稿

  18. 18

    VBA,Excel如何在不使用样式名称的情况下设置特定样式?

  19. 19

    获取PowerPoint演示文稿的当前缩放

  20. 20

    回形针:如何上载Powerpoint演示文稿文件

  21. 21

    从Word VBA编辑PowerPoint演示文稿页脚

  22. 22

    删除Powerpoint演示文稿中的命名对象

  23. 23

    循环播放Powerpoint演示文稿的选定部分

  24. 24

    回形针:如何上载Powerpoint演示文稿文件

  25. 25

    Excel VBA无法在Office 2016中将SaveAs嵌入式PowerPoint演示文稿保存

  26. 26

    如何将多个 Excel 图表粘贴到 PowerPoint 演示文稿中?

  27. 27

    在不打开防火墙上的传入端口(仅传出端口)的情况下设置反向代理

  28. 28

    录制PowerPoint演示文稿时如何获得演示者视图?

  29. 29

    在没有ActivePresentation的情况下关闭所有后台演示文稿

热门标签

归档