web-dev-qa-db-ja.com

PowerPoint-各スライドの時間を設定し、合計プレゼンテーション時間を表示しますか?

スライドごとに時間を設定できるトランジションタブがあることは知っていますが、これを使用して各スライドを自動的にトランジションする場合です。

各スライドに、設定できる時間プロパティを設定したいと思います。次に、プレゼンターとして、カウントダウンが表示されるため、プレゼンテーションを行うときに特定のスライドで時間の超過/不足が発生しているかどうかを確認できます。

さらに、これはプレゼンテーションの合計時間を決定できるので素晴らしいでしょう。したがって、下部のツールバーには、スライド時間= 01:30の項目と、スライドショー時間= 05:45の項目があります。

これが利用できないのではないかと心配しており、持っていると非常に便利だと思います。

ここで重要なのは、プレゼンテーションを引き続き制御したいので、自動スライドトランジションを使用したくないということです。ただし、ショーの準備と提示を改善するために、スライドの移行時間(およびそれらすべての合計)などの値を使用できるようにしたいと思います。

編集:スライドショー->設定領域で「タイミングの使用」をオフにできることがわかりました。これにより、スライドショーページに各スライドの時間を表示しながら、各スライドの後に自動進行が停止します。ただし、これでは、プレゼンテーション中のスライドタイマーや、プレゼンテーションの合計時間を確認できる場所は提供されません(30〜45枚のスライドがある場合、各スライドの時間を合計するのは面倒です)。

1
Bye

あなたが望むものをあなたに与えるあなたがダウンロードできるアドインがあります。最初のパーツが設定されているので、これを使用して アドイン 現在のスライドの上に経過時間を表示できます。

リンク先のウェブサイトにインストール手順がありますが、便宜上ここに記載します。

  1. 実行可能ファイルをダウンロードして、アドインをデフォルトの場所にインストールします。実行可能ファイルとインストールされているアドインファイルをスキャンしてウイルスを検出しましたが、それらがクリーンであることを確認できます。

  2. アドインがインストールされたら、PowerPointを開き、次の手順を実行します。

[ファイル]-> [オプション]-> [アドイン]->(下部の[管理]ドロップダウンから)[PowerPointアドイン]を選択して移動します

  1. 表示されるダイアログで、次の手順を実行します。

新規追加-> TM PowerPointタイマー(リボンUI)を選択-> OK

上記は、PowerPointリボンにTMタブを追加します。タイマーの設定ウィンドウで、経過時間を表示するタイマーを設定できます。最初のタブにはUpdate Displayエントリもあるので、必ず1秒に設定してください(デフォルトは10秒です)。

1
Yass

私はこれが私自身の質問に答えるエチケットを壊さないことを願っています。しかし、私はこれを見つけました。これは、スライドショーの合計時間を提供することができます。これは、スライドの自動トランジションに設定された時間に基づいています([トランジション]-> [アドバンススライド]-> [後:)]。スライドショーリボンでは、[タイミングの使用]を無効にして、プレゼンテーション中にスライドを進めることを制御できます。

これはプレゼンターのビューにスライドカウントダウンを提供しませんが、私はそれなしで生きることができ、メモの一番上にあるべき予想時間を入力するだけだと思います。上記のアドインは、プレゼンターの視点でカウントダウンを提供しているように見えますが、私の会場では使用できないため、オプションではありません。

私はここからこのマクロに基づいています PowerPoint FAQ。 時間を「00:00」形式で表示し、合計時間を個別のポップではなく下部に表示するように少し変更しました-アップ。これを使用するには、[表示]-> [マクロ]に移動して、新しいマクロ「合計時間」を作成するだけです。以下のコードをコピーして貼り付けます。

Sub TotalTimes()

Dim oSld As Slide
Dim strMessage As String
Dim lngTotalTime As Long
Dim strSlideMin As String
Dim strSlidesec As String


' Use this to collect times for ALL slides:
For Each oSld In ActivePresentation.Slides
' Or comment it out and uncomment this to get just the selected slides:
' For Each oSld in ActiveWindow.Selection.SlideRange
    strSlideMin = Format(Int(oSld.SlideShowTransition.AdvanceTime / 60), "00")
    strSlidesec = Format(Int(oSld.SlideShowTransition.AdvanceTime Mod 60), "00")
    strMessage = strMessage _
        & CStr(oSld.SlideNumber) _
        & vbTab _
        & strSlideMin & ":" & strSlidesec _
        & vbCrLf
    lngTotalTime = lngTotalTime + oSld.SlideShowTransition.AdvanceTime
Next oSld

' Comment these out if you don't want to see them
strMessage = strMessage & vbCrLf & "Total" & vbTab & Format(Int(lngTotalTime / 60), "00") & ":" & Format(Int(lngTotalTime Mod 60), "00")
MsgBox strMessage
'MsgBox ("Total time: " & CStr(lngTotalTime))


End Sub

元のコードには、テキストファイルに書き込むためのセクションも含まれていますが、ニーズを満たしていないために切り取りました。

MSがPowerPoint内でこの情報を利用できないことに非常に驚いています。デフォルトで含まれる、かなり直感的な情報のようです。

1
Bye

私はこのページで解決策を見つけました: リンク 。作成者はメモリにカウントダウンタイマーを作成し、その進行状況テキストをすべてのスライドに挿入された最後の図形に追加します。

最初のスライドに影響を与えず、最後に挿入する前に形状を更新するように少し変更しました。私は常にフッターから日付とスライド番号を削除し、プレゼンテーションが終了したときにそれらを追加します。

カウントダウンする分数を設定するには、TargetDateTime = DateAdd("n", 6, Now)を見つけて、6を変更します。

これが私の変更されたコードです:

Option Explicit
'API Declarations
Declare PtrSafe Function SetTimer Lib "user32" _
                            (ByVal hwnd As LongLong, _
                             ByVal nIDEvent As LongLong, _
                             ByVal uElapse As LongLong, _
                             ByVal lpTimerFunc As LongLong) As LongLong
Declare PtrSafe Function KillTimer Lib "user32" _
                            (ByVal hwnd As LongLong, _
                             ByVal nIDEvent As LongLong) As LongLong

' Public Variables
Public TimerID As LongLong
Public bTimerState As Boolean
Public TargetDateTime As Date


Sub TimerOnOff()

Dim maxshapes As Integer
Dim i As Integer

TargetDateTime = DateAdd("n", 6, Now)

For i = 2 To ActivePresentation.Slides.Count
    maxshapes = ActivePresentation.Slides(i).Shapes.Count
    ActivePresentation.Slides(i).Shapes(maxshapes - 1).TextFrame.TextRange.Text = ""
Next i

If bTimerState = False Then
    TimerID = SetTimer(0, 0, 1000, AddressOf TimerProc)
    If TimerID = 0 Then
        MsgBox "Unable to create the timer", vbCritical + vbOKOnly, "Error"
        Exit Sub
    End If
    bTimerState = True
    SlideShowWindows(1).View.GotoSlide (SlideShowWindows(1).View.Slide.SlideIndex + 1)
Else
    TimerID = KillTimer(0, TimerID)
    If TimerID = 0 Then
        MsgBox "Unable to stop the timer", vbCritical + vbOKOnly, "Error"
    End If
    bTimerState = False
End If

End Sub

' The defined routine gets called every nnnn milliseconds.
Sub TimerProc(ByVal hwnd As LongLong, _
                    ByVal uMsg As LongLong, _
                    ByVal idEvent As LongLong, _
                    ByVal dwTime As LongLong)

Dim diff As Date
Dim out As String
Dim maxshapes As Integer
Dim i As Integer

Dim hours As String
Dim minutes As String
Dim seconds As String

Dim hoursTest As Boolean
Dim minutesTest As Boolean
Dim secondsTest As Boolean

diff = TargetDateTime - Now
out = ""

hoursTest = (Hour(diff) <> 0)
minutesTest = (Minute(diff) <> 0)
secondsTest = (Second(diff) <> 0)

hours = CStr(Hour(diff))
minutes = CStr(Minute(diff))
seconds = CStr(Second(diff))

If hoursTest Then
    If Hour(diff) < 10 Then
        out = out + "0"
    End If
    out = out + hours
End If

If minutesTest Or hoursTest Then
    If hoursTest Then
        out = out + ":"
    End If
    If Minute(diff) < 10 Then
        out = out + "0"
    End If
    out = out + minutes
End If

If secondsTest Or minutesTest Then
    If minutesTest Then
        out = out + ":"
    End If
    If Second(diff) < 10 Then
        out = out + "0"
    End If
    out = out + seconds
Else
    If minutesTest And hoursTest Then
        out = "END"
    End If
End If

On Error GoTo err:
For i = 2 To ActivePresentation.Slides.Count
    maxshapes = ActivePresentation.Slides(i).Shapes.Count
    ActivePresentation.Slides(i).Shapes(maxshapes - 1).TextFrame.TextRange.Text = out
Next i
err:
End Sub
0
Ahmed Elsawalhy

アドインを介してこれを行うよりエレガントな方法がありますが、これはどうですか...メモを表示できるプレゼンタービューを使用していることを前提としていますが、代わりにスライドなどにテキストを追加できます。

Option Explicit
Public StartTime As Date

Sub StartTimer()
    StartTime = Time
    SlideShowWindows(1).View.GotoSlide (SlideShowWindows(1).View.Slide.SlideIndex + 1)
End Sub

Sub ElapsedTime(osh As Shape)

    Dim oNotesText As Shape
    Dim oNextSlide As Slide

    ' what slide are we about to move TO?
    Set oNextSlide = ActivePresentation.Slides(osh.Parent.SlideIndex + 1)

    ' Get a reference to the notes text on that slide (not 100% reliable, but generally works)
    Set oNotesText = oNextSlide.NotesPage.Shapes(2)

    ' Do the time math and add the elapsed time to the notes:
    With oNotesText
        .TextFrame.TextRange.Text = Format(Time - StartTime, "HH:MM:SS") & vbCrLf & .TextFrame.TextRange.Text
    End With

    ' And go to the slide
    SlideShowWindows(1).View.GotoSlide (SlideShowWindows(1).View.Slide.SlideIndex + 1)

End Sub

最初のスライドに図形を追加し、実行マクロのアクション設定を割り当てます:StartTimer次のスライドに図形を追加し、実行マクロのアクション設定を割り当てます:ElapsedTimeスライド2から他のスライドに図形をコピーして貼り付けます。プレゼンテーション。

0
Steve Rindsberg