Я пытаюсь открыть конкретный слайд PowerPoint, выбранный пользователем в Excel. Код для открытия Powerpoint для конкретного слайда следующего (Тарг является строкой, как "Slide:12"
):Установите презентацию PowerPoint, когда она уже открыта (из Excel)
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
Try: 'Set pptPres = pptApp.Presentations (Dir (PptPath))' –