Я использую PowerPoint 2016.
На этом форуме я нашел другие вопросы (например, здесь ), которые указывают, что ответом является использование событий OnSlideShowPageChange или slideshownextslide.Однако мне кажется, что эти события не происходят.
У меня есть следующий код в модуле в моей презентации
Public Sub OnSlideShowPageChange(ByVal Wn As SlideShowWindow)
Dim i As Integer
Dim sld As Slide
Dim shp As Shape
Dim boxText As String
MsgBox "here"
Set sld = Application.ActiveWindow.View.Slide
'If Wn.View.CurrentShowPosition = 5 Then
If sld.SlideIndex = 5 Then
For Each shp In sld.Shapes
If shp.HasTextFrame Then
MsgBox "looking"
boxText = shp.TextFrame.TextRange.Text
If InStr(1, boxText, "10 Seconds") <> 0 Then 'we found the countdown box
For i = 1 To 10
Pause (1)
If i < 9 Then
shp.TextFrame.TextRange.Text = 10 - i & " seconds"
Else
shp.TextFrame.TextRange.Text = 10 - i & " second"
End If
Next i
End
End
Next shp
ActivePresentation.SlideShowWindow.View.Next
shp.TextFrame.TextRange.Text = "10 seconds"
End If
End Sub
Но я даже никогда не вижу этот первый msgBox "здесь" .... Есть идеи, где я ошибаюсь?
Файл, который я использую, находится здесь .Пытался вставить несколько текстовых полей и комментарии к коду, чтобы было понятно, что я собираюсь сделать