%3A%20%E3%82%B9%E3%83%A9%E3%82%A4%E3%83%89%E3%81%AE%E3%82%BF%E3%82%A4%E3%83%9F%E3%83%B3%E3%82%B0%E3%82%92%E3%83%8A%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E9%95%B7%E3%81%95%E3%81%AB%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B.png)
誤って走ってしまったすべてのスライドのタイミングを明確にするコマンドを実行しても、すべてのスライドのタイミングが失われました。ただし、プレゼンテーションの各スライドにはナレーションがあります。すべてのスライドのスライドタイミングをナレーションの長さに設定する GUI/VBA の方法はありますか?
ありがとう。
答え1
一時的な回避策を開発しました:
- スライド上のオーディオ クリップを選択します。
- 下オーディオツール、の再生タブをクリックしてオーディオをトリミング再生時間の合計については右上隅を参照してください。
- 手動で調整調整するスライドタイミングトランジションタブのタイミンググループ、下前進スライド、 で後入力ボックス。
ワークフローは機能しますが、手動であるため手間がかかります。
VBA を通じてオーディオの合計再生時間を読み取る方法をご存知ですか?
答え2
プレゼンテーション内のサウンドの合計の長さを取得する VBA を以下に示します (その過程で、各サウンドを返します... 分割する必要がある場合は、コードを変更できます)。
Sub SumSoundLengths()
Dim oSh As Shape
Dim oSl As Slide
Dim sngLengthOfSound As Single
Dim sngSoundDuration As Single
For Each oSl In ActivePresentation.Slides
For Each oSh In oSl.Shapes
If oSh.Type = msoMedia Then
If oSh.MediaType = ppMediaTypeSound Then
With oSh
sngLengthOfSound = .MediaFormat.Length
sngSoundDuration = sngSoundDuration + sngLengthOfSound
End With
End If
End If
Next
Next
MsgBox "Sounds total to: " & CStr(sngSoundDuration)
End Sub
答え3
ここに、Steve の回答に基づいて私が作成したスクリプトがあります。何らかの理由で、スライド遷移変数が一見恣意的な制限値 86.4 を超えるという問題が発生しました。その数値を変更してもエラーが発生しない場合は、すべて削除してもかまいません。
Sub SetTransitionTimings()
Dim shapeObj As Shape
Dim slideObj As Slide
Dim sngLengthOfSound As Single
Dim slideDuration As Single
For Each slideObj In ActivePresentation.Slides
slideDuration = 0
For Each shapeObj In slideObj.Shapes
If shapeObj.Type = msoMedia Then
If shapeObj.MediaType = ppMediaTypeSound Then
With shapeObj
.AnimationSettings.PlaySettings.PlayOnEntry = msoTrue
sngLengthOfSound = .MediaFormat.Length / 1000
slideDuration = slideDuration + sngLengthOfSound
End With
End If
End If
Next
If slideDuration = 0 Then
slideDuration = 5
End If
If slideDuration < 86.4 Then
With slideObj.SlideShowTransition
.AdvanceOnTime = msoTrue
.Duration = 1
.AdvanceTime = slideDuration
End With
Else
Debug.Print "Slide " & slideObj.SlideNumber & ": " & slideDuration
End If
Next
MsgBox "Transition timings set."
End Sub
答え4
最新バージョンの PowerPoint にはタイミングに混乱を引き起こすバグがあるようです。リボン オプションの [トランジション] で、[XXX 秒後にスライドを進める] オプションがデフォルトで自動的にオンになっているようです。トランジションを編集してこのオプションをオフにしないと、すべてのタイミングが消去され、リボン オプションに表示されている数字に置き換えられます。
私はナレーションのタイミングが消えてしまったプレゼンテーションを修正しようと何日も費やし、ナレーションを再度録音し直し (うまくいかなかった)、その後、プレゼンテーション全体を手動で実行して自分でスクリーンショットを撮り、ビデオに変換するという方法に頼りました。この問題を解決したのは、上記の Jon G の解決策で、わずか 25 秒ほどで完了しました。
ありがとう、ジョン!