Я недавно запустил VBA и пытаюсь создать проект, который откроет файл powerpoint (compute_dashboard.pptx) и разместит его в режиме слайд-шоу. Он будет проходить через слайды и петлю, пока не достигнет определенного временного диапазона; в этом коде ниже он должен выйти в 10:10:00 - 10:10:10 и выйти из powerpoint. У меня есть две разные реализации, каждая со своими проблемами, если бы вы могли найти способ исправить любую из них, это было бы замечательно.
В моей первой реализации он откроет файл, затем powerpoint не отвечает, пока часы не достигнут этого временного диапазона, который затем завершает работу приложения, как и должно. Поэтому главная проблема в том, что я вообще не вижу показ слайдов.
Sub OpenFile()
Set pptApp = CreateObject("PowerPoint.Application")
pptApp.Visible = True
Set pptPres = pptApp.Presentations.Open("Compute_Dashboard.pptx")
ActivePresentation.SlideShowSettings.Run
Dim b As Boolean
b = True
While b = True
If Time() > TimeValue("10:10:00") And Time() < TimeValue("10:10:10") Then
b = False
ActivePresentation.SlideShowWindow.view.Exit
Application.Quit
End If
With ActivePresentation.Slides(1).SlideShowTransition
.AdvanceOnTime = msoTrue
.AdvanceTime = 3
End With
Wend
Во 2-й реализации он открывает файл, и слайд-шоу проходит правильно, но затем я не могу заставить слайд-шоу и PowerPoint завершить работу в моем временном диапазоне.
Sub OpenFile()
Set pptApp = CreateObject("PowerPoint.Application")
pptApp.Visible = True
Set pptPres = pptApp.Presentations.Open("Compute_Dashboard.pptx")
ActivePresentation.SlideShowSettings.Run
For Each s In ActivePresentation.Slides
With s.SlideShowTransition
.AdvanceOnTime = msoTrue
.AdvanceTime = 3
If Time() > TimeValue("10:10:00") And Time() < TimeValue("10:10:10") Then
ActivePresentation.SlideShowWindow.view.Exit
Application.Quit
End If
End With
Next