Saya sudah tahu dua perbaikan yang seharusnya, yang akan saya sebutkan di bawah ini, bersama dengan alasan mereka tidak bekerja untuk saya.
Yang pertama adalah menggunakan SlideShowNextSlide
subrutin. Masalah dengan ini adalah bahwa ia menyalakan acara sebelum transisi, jadi saya tidak punya cara untuk mengetahui slide mana yang sedang ditransisikan ke. Saya ingin acara tersebut memanas setelah memasuki slide tertentu selama presentasi, tidak meninggalkan slide tertentu. Saya tidak bisa hanya menambahkan satu ke CurrentShowPosition
bidang karena saya belum tentu maju ke slide berikutnya; Saya mungkin mengklik hyperlink. Singkatnya, saya hanya ingin memecat peristiwa pada beberapa transisi dari slide saat ini, tetapi dengan SlideShowNextSlide
saya tidak memiliki cara untuk mengetahui apakah saya pindah ke slide yang tepat untuk memecat acara.
Yang kedua adalah menggunakan OnSlideShowPageChange
subrutin. Masalahnya adalah, karena saya sudah menyimpan, menutup, dan membuka kembali peragaan slide PowerPoint saya satu kali, PowerPoint memutuskan untuk mengabaikan kode dalam subrutin.
Adakah yang punya saran tentang apa yang bisa saya lakukan? Mungkin cara untuk memperbaiki salah satu masalah tersebut? Saya menggunakan PowerPoint 2013 di Windows 8.1.
Berikut kode yang ingin saya gunakan:
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