Я уже знаю два предполагаемых решения, которые я перечислю ниже, а также причину, по которой они мне не помогли.
Первый — использовать SlideShowNextSlide
подпрограмму. Проблема в том, что она запускает событие до перехода, поэтому я не могу узнать, на какой слайд происходит переход. Я хочу, чтобы событие запускалось при входе на определенные слайды во время презентации, а не при выходе с определенных слайдов. Я не могу просто добавить его в поле, CurrentShowPosition
потому что я не обязательно перехожу на следующий слайд; я могу щелкнуть гиперссылку. Короче говоря, я хочу запускать события только принекоторыйпереходы с текущего слайда, но у SlideShowNextSlide
меня нет возможности узнать, перехожу ли я на нужный слайд, чтобы запустить событие.
Второй — использовать OnSlideShowPageChange
подпрограмму. Проблема в том, что, поскольку я уже сохранил, закрыл и снова открыл свое слайд-шоу PowerPoint, PowerPoint просто решает игнорировать код в подпрограмме.
Есть ли у кого-нибудь предложения, что я могу сделать? Может быть, как-то исправить одну из вышеупомянутых проблем? Я использую PowerPoint 2013 на Windows 8.1.
Вот код, который я хочу использовать:
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
решение1
Dim CS As Slide
Set CS = ActivePresentation.SlideShowWindow.View.Slide
If CS.SlideIndex < 66 And CS.SlideIndex > 25 Then
'''
End If
Я пытаюсь проверить, нахожусь ли я на нужном слайде SlideIndex
, а затем запускаюIf Condition