3

Я уже знаю о двух предполагаемых исправлениях, которые я перечислю ниже, а также причину, по которой они не работают для меня.

Первый - использовать 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

0