Já conheço duas supostas soluções, que listarei abaixo, junto com o motivo pelo qual não funcionam para mim.
A primeira é usar a SlideShowNextSlide
sub-rotina. O problema disso é que ele dispara o evento antes da transição, então não tenho como saber para qual slide está sendo feita a transição. Quero que o evento seja acionado ao entrar em determinados slides durante uma apresentação, não saindo de determinados slides. Não posso simplesmente adicionar um ao CurrentShowPosition
campo porque não estou necessariamente avançando para o próximo slide; Posso clicar em um hiperlink. Resumindo, quero disparar apenas os eventosalgunstransições do slide atual, mas SlideShowNextSlide
não tenho como saber se estou passando para o slide certo para disparar o evento.
A segunda é usar a OnSlideShowPageChange
sub-rotina. O problema é que, como já salvei, fechei e reabri minha apresentação de slides do PowerPoint uma vez, o PowerPoint simplesmente decide ignorar o código na sub-rotina.
Alguém tem alguma sugestão sobre o que posso fazer? Talvez uma maneira de resolver um dos problemas mencionados acima? Estou usando o PowerPoint 2013 no Windows 8.1.
Aqui está o código que quero 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
Responder1
Dim CS As Slide
Set CS = ActivePresentation.SlideShowWindow.View.Slide
If CS.SlideIndex < 66 And CS.SlideIndex > 25 Then
'''
End If
Tento verificar se estou no slide necessário SlideIndex
e, em seguida, executo umIf Condition