パワポ動画トリミングのバグ解決!一瞬映る「先頭画面」を完全に消し去る魔法のVBA
PowerPointで動画をトリミングした際、再生開始時やMP4への書き出し時に''「本来の先頭画面(0秒地点)」が一瞬だけ映り込んでしまう不具合''に悩まされていませんか?
「設定したはずのトリミングが無視される」「一瞬画面がチラついてダサい」……。
そんなプレゼンのクオリティを下げる致命的な不具合を、''VBAのたった2行の命令''で根本解決する方法を備忘録としてまとめます。

1. 発生する問題:動画トリミングの「一瞬のチラつき」
PowerPointの標準機能「ビデオのトリミング」で範囲を指定しても、再生の瞬間にトリミング前の「最初の1コマ」が映り込むことがあります。
検証動画では、あえて先頭を「赤」にした素材を使い、トリミング設定を無視して赤色が一瞬表示されてしまうバグを実演しています。さらに、このままMP4としてエクスポートすると、表示崩れが発生して動画が台無しになるケースもあります。
[02:35](https://www.youtube.com/watch?v=Yi_9o3ImBRA&t=155s) 視覚的証明:なぜ「赤色」が映り込むのか?
2. 解決策:マクロによる「再サンプリング」と「サムネイル固定」
この問題の原因は、PowerPointが内部的に動画の「元のデータ」を保持しており、表示用のキャッシュやサムネイルが更新されていないことにあります。
解決の核心は、標準メニューには存在しないVBA限定のメソッドを使うことです。
- ''.Resample'': 動画を物理的に再エンコードし、不要な部分をカットして最適化します。
- ''.SetDisplayPicture 0'': トリミング後の開始位置を、強制的にサムネイル(表紙画像)として固定します。
解決用VBAソースコード
以下のコードをコピーして、VBAエディター(VBE)に貼り付けて使用してください。
'トリミングされた動画を再エンコード後、表紙画像・サムネイルをトリミング後の先頭画像にする
Sub トリミング動画の調整()
Dim shp As Shape '選択したシェイプ
Dim vid As MediaFormat '動画フォーマット
'図形が選択されているかチェック
If ActiveWindow.Selection.Type <> ppSelectionShapes Then
MsgBox "動画(Shape)を選択してから実行してください", vbExclamation
Exit Sub
End If
'選択された1番目のシェイプを取り出す
Set shp = ActiveWindow.Selection.ShapeRange(1)
' シェイプが動画かチェックする
If shp.Type = msoMedia Then
Set vid = shp.MediaFormat '動画のフォーマットを取得
' 1. 再サンプリング(再エンコード)を実行
' これによりトリミング範囲外の不要なデータが削除され、最適化されます
vid.Resample True
DoEvents
MsgBox "次にサムネイルをトリミング後の開始位置に固定します", vbInformation
' 2. 表紙画像(サムネイル)を開始位置(0)にセットする
vid.SetDisplayPicture 0
DoEvents
MsgBox "調整が完了しました。一瞬のチラつきが消えたか確認してください", vbInformation
Else
MsgBox "動画ファイルを選択してください", vbExclamation
End If
End Sub
3. 実践:使い捨てマクロの実行手順
マクロに慣れていない方でも、以下の手順で簡単に実行できます。
- [10:01](https://www.youtube.com/watch?v=Yi_9o3ImBRA&t=601s) ''VBEの起動'': [表示]タブ > [マクロ] > 適当な名前(abcなど)を入力して[作成]をクリック。
- ''コードの貼り付け'': 表示されたエディターに上記のコードをコピー&ペースト。
- [12:47](https://www.youtube.com/watch?v=Yi_9o3ImBRA&t=767s) ''実行'': 修正したい動画を選択した状態で、[マクロ]から「トリミング動画の調整」を実行。
実行後、一瞬でサムネイルが切り替わり、あの不快な「赤いノイズ」が消え去る様子を確認できます。
4. 応用:複数動画を滑らかに繋げるテクニック
複数の動画を1枚のスライドで連続再生させる場合、以下の設定を組み合わせるとプロ級の仕上がりになります。
- ''「クリア」アニメーションの活用'': 前の動画が終わる瞬間に「消去」し、背面の動画を再生させることで重なりによるトラブルを防ぎます。[30:44](https://www.youtube.com/watch?v=Yi_9o3ImBRA&t=1844s)
- ''オブジェクトの重なり順(Z順)'': 「オブジェクトの選択と表示」ウィンドウで、再生順に合わせて重なりを調整します。[36:55](https://www.youtube.com/watch?v=Yi_9o3ImBRA&t=2215s)
5. 未解決の課題と積み残し
今回の検証で以下の点が今後の課題として残りました。
- 標準メニューの探索: 本当にこの「再サンプリング」と「サムネイル設定」を行うボタンが標準メニューの奥深くに隠れていないか?
- 作業の効率化: 毎回マクロをコピペするのは手間。アドイン化するか、全スライド一括処理マクロのブラッシュアップが必要。
関連リンク
- YouTube本編動画: https://www.youtube.com/watch?v=Yi_9o3ImBRA
- Microsoft公式: MediaFormat.Resampleリファレンス
- Google検索: パワポ動画トリミングのバグ解決
-
- -
解決のヒントとなれば幸いです。質問や「こんな時どうするの?」といった感想があれば、コメント欄までお気軽にどうぞ!