¿Cómo hago para que se active un evento cuando cambia la diapositiva en PowerPoint?

¿Cómo hago para que se active un evento cuando cambia la diapositiva en PowerPoint?

Ya conozco dos supuestas soluciones, que enumeraré a continuación, junto con la razón por la que no funcionan para mí.

La primera es utilizar la SlideShowNextSlidesubrutina. El problema con esto es que activa el evento antes de la transición, por lo que no tengo forma de saber a qué diapositiva se está realizando la transición. Quiero que el evento se active al ingresar a ciertas diapositivas durante una presentación, sin salir de ciertas diapositivas. No puedo simplemente agregar uno alCurrentShowPosition campo porque no necesariamente estoy avanzando a la siguiente diapositiva; Podría hacer clic en un hipervínculo. En resumen, sólo quiero disparar los eventos sobrealgunotransiciones desde la diapositiva actual, pero SlideShowNextSlideno tengo forma de saber si me estoy moviendo a la diapositiva correcta para activar el evento.

El segundo es utilizar la OnSlideShowPageChangesubrutina. El problema con esto es que, dado que ya guardé, cerré y volví a abrir mi presentación de diapositivas de PowerPoint una vez, PowerPoint simplemente decide ignorar el código en la subrutina.

¿Alguien tiene alguna sugerencia sobre lo que puedo hacer? ¿Quizás una forma de solucionar uno de los problemas antes mencionados? Estoy usando PowerPoint 2013 en Windows 8.1.

Aquí está el código que quiero usar:

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

Respuesta1

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

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

Intento verificar si estoy en la diapositiva requerida SlideIndexy luego ejecuto unIf Condition

información relacionada