Home » パワーポイントマクロ・PowerPoint VBAの使い方 » スライドショー » 自動スライドショーの総表示時間を調べるPowerPointマクロ

自動スライドショーの総表示時間を調べるPowerPointマクロ

対象:PowerPoint97, PowerPoint2000, PowerPoint2002, PowerPoint2003, PowerPoint2007

PowerPointでは、リハーサルを実行したり、各スライドの表示時間を数値で指定して、自動プレゼンテーションを簡単に作ることができます。

1枚1枚のスライドが何秒表示されるのかは、[画面切り替え]作業ウィンドウや[画面切り替え]ダイアログの[画面切り替えのタイミング]欄で確認することができます。

しかし、合計時間はどうも表示されていないようなのです。

個々のスライドの表示時間を自分で合計しない限り、自動スライドショーを行うと、合計何秒かかるのかがわからないのです。

[スポンサードリンク]

合計時間を表示するサンプルマクロ

スライドショーの合計時間がどれくらいなのかを知るためのマクロを作成してみました。

Sub 自動スライドショーの表示時間を調べる()

 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 & "秒です。"

End Sub

▼サンプルファイル(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マクロ

「スライドショー」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.