PowerPointでは、リハーサルを実行したり、各スライドの表示時間を数値で指定して、自動プレゼンテーションを簡単に作ることができます。
1枚1枚のスライドが何秒表示されるのかは、[画面切り替え]作業ウィンドウや[画面切り替え]ダイアログの[画面切り替えのタイミング]欄で確認することができます。
しかし、合計時間はどうも表示されていないようなのです。
個々のスライドの表示時間を自分で合計しない限り、自動スライドショーを行うと、合計何秒かかるのかがわからないのです。
合計時間を表示するサンプルマクロ
スライドショーの合計時間がどれくらいなのかを知るためのマクロを作成してみました。
Dim sld As Slide
Dim time_tmp As Single ''個々の表示時間(秒)
Dim time_sum As Single ''表示時間の合計(秒)
Debug.Print "SlideNumber, 秒数"
time_sum = 0
For Each sld In ActivePresentation.Slides
With sld
time_tmp = .SlideShowTransition.AdvanceTime
Debug.Print .SlideNumber & ", " & time_tmp
time_sum = time_sum + time_tmp
End With
Next sld
Debug.Print "合計, " & time_sum
MsgBox "総表示時間は、" & time_sum & "秒です。"
▼サンプルファイル(002871.ppt 53KByte)ダウンロード
サンプルファイルは、自動スライドショーの設定が行ってあり、上記のマクロを実行すると、
「総表示時間は、10秒です。」
というメッセージが表示されます。
また、イミディエイトウィンドウには、
SlideNumber, 秒数
1, 5
2, 3
3, 2
合計, 10
という出力が行われます。
これはスライド1〜3の表示秒数が、それぞれ
5秒
3秒
2秒
で、合計時間が、
10秒
であることを示しています。
サンプルマクロの解説
アクティブなプレゼンテーションファイルの全スライドに、For Each~Nextループを回して、
For Each sld In ActivePresentation.Slides
表示時間を取得して、
With sld
time_tmp = .SlideShowTransition.AdvanceTime
イミディエイトウィンドウにスライド番号と表示時間の出力を行い、
Debug.Print .SlideNumber & ", " & time_tmp
合計時間を加算しています。
time_sum = time_sum + time_tmp
ループを抜けてから、合計時間をイミディエイトウィンドウとメッセージボックスに表示しています。
End With
Next sld
Debug.Print "合計, " & time_sum
MsgBox "総表示時間は、" & time_sum & "秒です。"
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » スライドショー » 自動スライドショーの総表示時間を調べるPowerPointマクロ