私は、学生がプロジェクトを完了している間、スライドに表示されるカウントダウン タイマーが必要なプロジェクトに取り組んでいます。
オンラインで複数の例を見つけましたが、それらを目的に適合させようとすると、コードを期待どおりに実行できません。
私のテストでは、コードにブレークポイントと debug.prints を追加して、コードが実行されているかどうかを確認して、論理エラーがあるかどうかを確認できるようにしました。ただし、スライドショーを再生すると、ブレークポイントにヒットしていないように見えますが、最初の更新行は実行されます -ActivePresentation.Slides(1).Shapes("MainTitle").TextFrame.TextRange.Text = "Got To " & Now
カウントダウンを適切に行う方法がわかりません。
ご意見、ご指導を賜りますようお願い申し上げます。
Public Sub BAR01_Countdown()
ActivePresentation.Slides(1).Shapes("MainTitle").TextFrame.TextRange.Text = "Got To " & Now
Dim CountTimeEnd As Date
Dim myHours As Integer
Dim myMinutes As Integer
Dim mySeconds As Integer
Dim dispH As Integer
Dim dispM As Integer
Dim dispS As Integer
Dim dispTime As String
Dim secondsRemain As Integer
CountTimeEnd = Now()
myHours = 0
myMinutes = 5
mySeconds = 0
CountTimeEnd = DateAdd("h", myHours, CountTimeEnd)
CountTimeEnd = DateAdd("n", myMinutes, CountTimeEnd)
CountTimeEnd = DateAdd("s", mySeconds, CountTimeEnd)
Do Until CountTimeEnd < Now()
secondsRemain = (DateDiff("s", CountTimeEnd, Now))
dispH = Round((secondsRemain) / (60 * 60), 0)
dispM = Round(((secondsRemain) - (dispH * 60 * 60)) / 60, 0)
dispS = (secondsRemain) - (dispH * 60 * 60) - (dispM * 60)
If dispH > 0 Then
dispTime = Format(dispH, "00") & " : " & Format(dispM, "00") & " . " & Format(dispS, "00")
ElseIf dispH < 0 And dispM > 0 Then
dispTime = Format(dispM, "00") & " . " & Format(dispS, "00")
Else
dispTime = Format(dispS, "00") & " seconds"
End If
ActivePresentation.Slides(1).Shapes("MainTitle").TextFrame.TextRange.Text = dispTime
DoEvents
Loop
End Sub
Sub OnSlideShowPageChange()
BAR01_Countdown
End Sub