如何在 PowerPoint 中的幻燈片變更時觸發事件?

如何在 PowerPoint 中的幻燈片變更時觸發事件?

我已經知道兩個假定的修復方法,我將在下面列出它們,以及它們對我不起作用的原因。

第一種是使用SlideShowNextSlide子程序。這樣做的問題是它在轉換之前觸發事件,所以我無法知道正在轉換到哪張幻燈片。我希望該事件在演示期間進入某些幻燈片時觸發,而不是離開某些幻燈片。我不能簡單地在該CurrentShowPosition字段中添加一個,因為我不一定會前進到下一張幻燈片;我可能會點擊一個超連結。簡而言之,我只想觸發事件一些從當前幻燈片過渡,但SlideShowNextSlide我無法知道是否要移動到正確的幻燈片來觸發事件。

第二種是使用OnSlideShowPageChange子程序。這樣做的問題是,由於我已經儲存、關閉並重新開啟了 PowerPoint 投影片一次,PowerPoint 只是決定忽略子程式中的程式碼。

有人對我能做什麼有什麼建議嗎?也許有一種方法可以解決上述問題之一?我在 Windows 8.1 上使用 PowerPoint 2013。

這是我想使用的程式碼:

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

相關內容