Я вже знаю два передбачувані виправлення, які я перелічу нижче, а також причину, коли вони не працюють для мене.
Перший - використовувати 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