VBA Excel в Powerpoint, переместите 1 слайд вперед - PullRequest
0 голосов
/ 30 апреля 2018

Я пытаюсь создать макрос, который открывает pp, а затем переместиться на один слайд вперед и сделать его активным. Я чувствую, что есть простое решение для этого, но я не могу найти код, чтобы продвинуть меня вперед на один слайд. пока у меня есть

Private Sub OpenPowerpoint()
' Opens Presentation.pptx

Dim PPT As PowerPoint.Application
Set PPT = New PowerPoint.Application
PPT.Visible = True
PPT.Presentations.Open Filename:="C:\Users\Person\Desktop\Test\Template.pptx"

End Sub

, которые открывают мой pp на первом слайде.

Ответы [ 2 ]

0 голосов
/ 30 апреля 2018

Вы почти у цели - с вашим кодом просто добавьте PPT.ActivePresentation.Slides(2).Select:

Private Sub OpenPowerpoint()

    Dim PPT As PowerPoint.Application
    Set PPT = New PowerPoint.Application

    PPT.Visible = True
    PPT.Presentations.Open Filename:="C:\Users\Person\Desktop\Test\Template.pptx"        
    PPT.ActivePresentation.Slides(2).Select

End Sub
0 голосов
/ 30 апреля 2018

Window.View.GoToSlide позволит вам перейти к определенному номеру слайда.

Window.View.Slide.SlideIndex сообщит вам, по какому номеру слайда вы сейчас находитесь.

Presentation.Slides.Count расскажет вам, сколько слайдов в презентации, чтобы вы не пытались пройти дальше конца.

Положите это вместе:

Private Sub OpenPowerpoint()
    ' Opens Presentation.pptx

    Dim PPT As PowerPoint.Application, PPP As PowerPoint.Presentation, PPW As Object
    Set PPT = New PowerPoint.Application
    PPT.Visible = True
    Set PPP = PPT.Presentations.Open(FileName:="C:\Users\Person\Desktop\Test\Template.pptx")
    Set PPW = PPP.Windows(PPP.Windows.Count)
    'If there are more slides, go to the next one
    If PPW.View.Slide.SlideIndex < PPP.Slides.Count Then PPW.View.GotoSlide PPW.View.SlideIndex + 1
End Sub
...