#動作環境
・Microsoft Office 365
・Microsoft Powerpoint 2016, 2013
#はじめに
マクロ処理の中に動画生成する処理が必要という人向けに書いてみようと思います。
「あれ?スライドショーだと音声や動画が再生されるのに、MP4出力したら静止画になったぞ!?音も鳴らないぞ!!」という問題にぶち当たりました。スライド切替は反映してくれるけど、スライドに貼ったオブジェクトは何も動作してくれませんでした。
解決方法としては、「マクロ上でもう一回設定してね!」という方法を採用しました。おそらく、UI上の設定はほとんど無効になってしまうと思います。
#注意点
PlaySettings.PlayOnEntry を True にしないと、スライドに入れたオブジェクトが何も動いてくれないです。
これが原因。おそらくデフォルトは False だと思います。
Set currentSlide = ActivePresentation.Slides(i)
With currentSlide.Shapes.AddMediaObject2(FileName).AnimationSettings
.AdvanceMode = ppAdvanceOnTime 'スライドの切り替え方。ppAdvanceOnTimeにすると自動切替
.AdvanceTime = 0 '指定スライドの切替時間。0にしないと、すぐに切り替えが起きない。
.Animate = msoTrue 'スライドショー中に指定された図形のアニメーションを実行するかどうか
.PlaySettings.PlayOnEntry = True 'アニメーション実行時、指定したビデオやサウンドを自動再生するか
End With
その他に注意する点。
こっちは、そのスライド自体の表示時間です。
currentSlide.SlideShowTransition.AdvanceTime = 10 '10秒表示
以下は、MP4ファイルを生成するコードです。
ActivePresentation.CreateVideo FileName:=mp4FileName, VertResolution:= 1080, Quality:= 80
- VertResolution は動画の解像度です。低い値にすると、文字化けが起きます。
- Quality は動画の品質です。Maxは100。