パワーポイントのマクロについて不明点があるため、
質問させていただきます。
現在VBAを利用してタイマーを作成しています。
2ページあり、1ページ目のタイマー(label1オブジェクト)は予想通りの動きをするのですが、
2ページ目のタイマー(lavel1オブジェクト)が動きません。
同一ページにlavel1を複製すると動くのですがページをまたぐと動きません。
オブジェクトはページをまたげないものなのでしょうか。
有識者の皆様、ご教授ください。
VBA
1Option Explicit 2 3'スタートボタン押下時のTimer()関数の戻り値 4Dim sStart As Single 5'現在時刻のTimer()関数の戻り値 6Dim sCurrent As Single 7'前回表示を更新した自国のTimer()関数の戻り値 8Dim sPrevious As Single 9'True:カウントアップ false:停止 10Dim bCount As Boolean 11'時間 12Dim iHour As Integer 13'分 14Dim iMin As Integer 15'秒 16Dim iSec As Integer 17Dim strTmp As String 18 19'スライドショーでページが切り替わった時に実行 20Public Sub OnSlideShowPageChange(ByVal Wn As SlideShowWindow) 21 'スライドショー一枚目に切り替えたとき0秒を表示 22 If ActivePresentation.SlideShowWindow.View.Slide.SlideIndex = 1 Then 23 'Label1.Caption = "00:00" 24 Label1.Caption = strTmp 25 End If 26End Sub 27'スライドショーが終了時に実行 28Public Sub OnSlideShowTerminate(ByVal Wn As SlideShowWindow) 29 'タイマーの更新を終了 30 bCount = False 31End Sub 32Private Sub StartButton_Click() 33 34 bCount = True 35 36 'sStartに現在の時刻を秒数にしたものを代入 37 sStart = Timer() 38 39 'Lbel1にsStartを表示 40 'CStr 関数は、数値や日付などを文字列型 (String) に変換 41 Label1.Caption = "00:00" 42 43 '更新時刻を記録 44 sPrevious = sStart 45 46 'bCountがtrueの間、タイマーを更新。ストップボタンが押されるとbCountがfalseになりタイマーが止まる 47 Do While (bCount = True) 48 'sCurrentに現在時刻を代入 49 sCurrent = Timer() 50 51 If (sCurrent - sPrevious) >= 1 Then 52 53 '経過秒を表す整数 54 Dim iElapsedSec As Integer 55 iElapsedSec = CInt(sCurrent - sStart) 56 57 iHour = iElapsedSec \ 3600 58 iMin = (iElapsedSec Mod 3600) \ 60 59 iSec = (iElapsedSec Mod 3600) Mod 60 60 61 Dim strHour As String 62 Dim strMin As String 63 Dim strSec As String 64 65 '時間が二桁以外の場合ゼロを足す 66 If iHour >= 10 Then 67 strHour = CStr(iHour) & ":" 68 Else 69 strHour = "0" & CStr(iHour) & ":" 70 End If 71 72 '分が二桁以外の場合ゼロを足す 73 If iMin >= 10 Then 74 strMin = CStr(iMin) & ":" 75 Else 76 strMin = "0" & CStr(iMin) & ":" 77 End If 78 79 '秒が二桁以外の場合ゼロを足す 80 If iSec >= 10 Then 81 strSec = CStr(iSec) 82 Else 83 strSec = "0" & CStr(iSec) 84 End If 85 86 Label1.Caption = strMin & strSec 87 strTmp = strMin & strSec 88 sPrevious = sCurrent 89 End If 90 DoEvents 91 Loop 92End Sub 93Private Sub StopButton_Click() 94 bCount = False 95End Sub

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/05/23 00:02
2022/05/23 14:58