Wie kann ich ein Ereignis auslösen, wenn sich die Folie in PowerPoint ändert?

Wie kann ich ein Ereignis auslösen, wenn sich die Folie in PowerPoint ändert?

Mir sind bereits zwei angebliche Lösungen bekannt, die ich im Folgenden zusammen mit der Begründung auflisten werde, warum sie bei mir nicht funktionieren.

Die erste Möglichkeit besteht darin, die Subroutine zu verwenden SlideShowNextSlide. Das Problem dabei ist, dass das Ereignis vor dem Übergang ausgelöst wird, sodass ich nicht wissen kann, zu welcher Folie gewechselt wird. Ich möchte, dass das Ereignis beim Aufrufen bestimmter Folien während einer Präsentation ausgelöst wird, nicht beim Verlassen bestimmter Folien. Ich kann nicht einfach eins zum CurrentShowPositionFeld hinzufügen, da ich nicht unbedingt zur nächsten Folie gehe; ich klicke vielleicht auf einen Hyperlink. Kurz gesagt, ich möchte die Ereignisse nur auslösen, wennmancheÜbergänge von der aktuellen Folie, aber SlideShowNextSlideich habe keine Möglichkeit zu wissen, ob ich zur richtigen Folie gehe, um das Ereignis auszulösen.

Die zweite Möglichkeit besteht darin, die Subroutine zu verwenden OnSlideShowPageChange. Das Problem dabei ist, dass PowerPoint den Code in der Subroutine einfach ignoriert, da ich meine PowerPoint-Präsentation bereits einmal gespeichert, geschlossen und erneut geöffnet habe.

Hat jemand Vorschläge, was ich tun kann? Vielleicht eine Möglichkeit, eines der oben genannten Probleme zu beheben? Ich verwende PowerPoint 2013 unter Windows 8.1.

Hier ist der Code, den ich verwenden möchte:

Private Sub EventHandler_SlideShowNextSlide(ByVal SSW As SlideShowWindow)
' The purpose here is to stop music playing in the background, which happens on certain slides.
' For my purposes, it's not enough to simply state how many slides to play the music over,
' because some slides that need the music stopped can occur before slides that need it playing.
Dim Change As Boolean
If SSW.View.CurrentShowPosition < 66 And ((SSW.View.CurrentShowPosition < 42 And SSW.View.CurrentShowPosition > 25) Or SSW.View.CurrentShowPosition Mod 2 = 0) _
Then
    ActivePresentation.Slides(1).Shapes("music file.mp3").Delete
    Change = True
End If
If Change Then Application.CommandBars.ExecuteMso "Undo"
End Sub

Antwort1

Dim CS As Slide
Set CS = ActivePresentation.SlideShowWindow.View.Slide

If CS.SlideIndex < 66 And CS.SlideIndex > 25 Then
'''
End If

Ich versuche zu überprüfen, ob ich mich in der gewünschten Folie befinde, SlideIndexund führe dann eineIf Condition

verwandte Informationen