最近有一個工作是要將 PowerPoint 簡報內容輸出成影片,而且影片長度必須要控制為指定的時間長度,該如何來處理?

PowerPoint-如何將簡報內容輸出成影片且影片長度控制

1.規劃時間(秒數)

配合投影片的內容,先在Excel裡規畫每個投影片的秒數,再利用公式計算累積秒數和總秒數,以利規劃時的運用。

PowerPoint-如何將簡報內容輸出成影片且影片長度控制

總秒數計算公式:

="總秒數:"&SUM(B3:B27,H3:H27,N3:N27)&"秒="&INT(SUM(B3:B27,H3:H27,N3:N27)/60)&"分"&MOD(SUM(B3:B27,H3:H27,N3:N27),60)&"秒"

累積秒數計算公式,以儲存格O3為例:

=INT(SUM($B$3:$B$27,$H$3:$H$27,$N$3:N3)/60)&":"&MOD(SUM($B$3:$B$27,$H$3:$H$27,$N$3:N3),60)

 

2.設定時間(秒數)

依以上的規劃,將每張投影片秒數設定至投影片換頁秒數。

1.切換至「轉場」功能表,在「投影片換頁」中勾選「每隔」,並輸入要設定的秒數。

2.如果轉場效果是無,則直接設定規劃的秒數,如果有設定轉場,則必須扣減轉場所花時間(秒數)。

PowerPoint-如何將簡報內容輸出成影片且影片長度控制

 

3.檢核校正

你如何確認設定的秒數是正確的?

我請ChatGPT產生一個VBA程式為我輸出每一張投影片的秒數讓我核對。ChatGPT提供我以下的程式:

Sub GenerateSlidesDurationReport()
    Dim filePath As String
    Dim fileNo As Integer
    Dim slide As slide
    Dim totalDuration As Single
    Dim slideDuration As Single
    Dim report As String
    
    ' 設置報表文件的路徑
    filePath = Environ$("USERPROFILE") & "\Desktop\SlidesDurationReport.txt"
    
    ' 開始寫入報表
    fileNo = FreeFile
    Open filePath For Output As #fileNo
    Print #fileNo, "投影片播放時間報表"
    Print #fileNo, "--------------------------------"
    
    For Each slide In ActivePresentation.Slides
        With slide
            slideDuration = .SlideShowTransition.AdvanceTime
            totalDuration = totalDuration + slideDuration
            report = "投影片 " & .SlideIndex & ": " & slideDuration & " 秒"
            Print #fileNo, report
        End With
    Next slide
    
    ' 輸出總播放時間
    Print #fileNo, "--------------------------------"
    Print #fileNo, "總播放時間: " & totalDuration & " 秒"
    
    ' 關閉檔案
    Close #fileNo
    
    ' 顯示報表已生成的訊息
    MsgBox "播放時間報表已生成於桌面上。", vbInformation
End Sub

------------------------------------------------------------

複製這個程式碼,然後:

(1)切換至「開發人員」功能表,可以至「選項」的自訂功能區中勾選:開發人員,功能表中就會有「開發人員」。

PowerPoint-如何將簡報內容輸出成影片且影片長度控制

(2)點選「Visual Basic」圖示,再選取「插入/組組」。

PowerPoint-如何將簡報內容輸出成影片且影片長度控制

(3)貼上程式碼。

(4)點選「執行」圖示。

PowerPoint-如何將簡報內容輸出成影片且影片長度控制

接著,會在你的電腦桌面上產生一個文字檔(SlidesDurationReport.txt),內容有每張投影片的秒數,可以用來核對是否有正確設定。

PowerPoint-如何將簡報內容輸出成影片且影片長度控制

 

4.輸出影片

(1)點選「檔案/匯出」。

(2)點選「建立視訊」。

(3)在「每張投影片所用秒數」中設定為「0」。

(4)建立視訊。

PowerPoint-如何將簡報內容輸出成影片且影片長度控制

結果應該就如你所願了!本例的輸出比預定的15分鐘多了2秒,應該是在某一張投影片內容裡的播放影片秒數,超過了投影片設定換頁秒數造成。

PowerPoint-如何將簡報內容輸出成影片且影片長度控制

我使用新的指令,請ChatGPT產生每張投影片播放時間和轉場時間的報表。得到新的VBA程式碼:

Sub GeneratePresentationTimingReportOnDesktop()
    Dim slideIndex As Integer
    Dim slideTiming As Single
    Dim transitionTiming As Single
    Dim totalTiming As Single
    Dim reportText As String
    Dim desktopPath As String
    Dim filePath As String
    
    ' 獲取桌面路徑
    desktopPath = CreateObject("WScript.Shell").SpecialFolders("Desktop")
    
    ' 初始化報告文本
    reportText = "Slide #, Slide Timing (s), Transition Timing (s)" & vbCrLf
    
    ' 遍歷演示文稿中的每一張幻燈片
    For slideIndex = 1 To ActivePresentation.Slides.Count
        With ActivePresentation.Slides(slideIndex)
            ' 獲取幻燈片播放和過渡時間
            slideTiming = .SlideShowTransition.AdvanceTime
            transitionTiming = .SlideShowTransition.Duration
            totalTiming = totalTiming + slideTiming + transitionTiming
            
            ' 添加到報告文本中
            reportText = reportText & slideIndex & ", " & slideTiming & ", " & transitionTiming & vbCrLf
        End With
    Next slideIndex
    
    ' 添加總播放時間到報告文本中
    reportText = reportText & vbCrLf & "Total Presentation Time: " & totalTiming & " seconds"
    
    ' 設置報告文件的完整路徑
    filePath = desktopPath & "\PresentationTimingsReport.txt"
    
    ' 將報告寫入到文本文件中
    Dim fileNumber As Integer
    fileNumber = FreeFile
    Open filePath For Output As #fileNumber
    Print #fileNumber, reportText
    Close #fileNumber
    
    ' 彈出消息框通知用戶報告已生成
    MsgBox "Presentation timings report has been generated on your desktop: " & filePath
End Sub

 

學不完.教不停.用不盡文章列表

arrow
arrow
    文章標籤
    PowerPoint 影片
    全站熱搜
    創作者介紹
    創作者 vincent 的頭像
    vincent

    學不完.教不停.用不盡

    vincent 發表在 痞客邦 留言(0) 人氣()