質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

3880閲覧

VBA 各スライドに挿入した動画を自動再生に変更する

yu_my

総合スコア1

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2021/10/11 07:38

前提・実現したいこと

VBAで各スライドに挿入した動画を自動再生に変更する

【ここに質問の内容を詳しく書いてください。】

あるフォルダの中に保存されている複数の動画ファイルを

  1. パワーポイントの各スライドに一つずつ挿入

なおかつ,
2. その挿入した動画の再生方法を「一連のクリック動作」から「自動」に変更

したいです.動画のファイル数が多いので,VBAで上記の作業を行いたいのですが,
(2)の方法が分かりません.

発生している問題・エラーメッセージ

挿入した動画の開始のタイミングが「自動」にならない

該当のソースコード

With ActiveWindow tmp = .ViewType 'ウィンドウの表示モード記憶 .ViewType = ppViewSlide End With '動画フォルダ取得 Set fol = CreateObject("Shell.Application") _ .BrowseForFolder(0, "画像フォルダ選択", &H10, 0) If fol Is Nothing Then GoTo Fin fol_path = fol.Self.Path 'フォルダ内のファイル処理 With CreateObject("Scripting.FileSystemObject") If Not .FolderExists(fol_path) Then GoTo Fin For Each f In .GetFolder(fol_path).Files 'MP4ファイルのみ処理 Select Case LCase(.GetExtensionName(f.Path)) Case "mp4" Set sld = prs.Slides.Add(prs.Slides.Count + 1, ppLayoutBlank) sld.Select Set shp = sld.Shapes.AddMediaObject2(FileName:=f.Path, _ LinkToFile:=False, _ SaveWithDocument:=True, _ Left:=0, _ Top:=0) With shp .LockAspectRatio = True '縦横比を固定 '挿入した動画をスライドのサイズに合わせる If .Width > .Height Then .Width = prs.PageSetup.SlideWidth Else .Height = prs.PageSetup.SlideHeight End If '再生方法を自動にする With .AnimationSettings.PlaySettings .PlayOnEntry = msoTrue .HideWhileNotPlaying = msoFalse End With .Select End With      'アニメーションウィンドウで挿入した動画の開始のタイミングを「直前」の動作と一緒に変更したい      '例えば下記の様にエフェクトを新たに追加することはできたが,      '既に挿入されている動画のTriggerTypeを変更できなかった 'Set effDiamond = ActivePresentation.Slides(1).TimeLine.MainSequence _ '.AddEffect(Shape:=shp, effectId:=msoAnimEffectPathDiamond) 'With effDiamond.Timing '.TriggerType = msoAnimTriggerWithPrevious '.TriggerDelayTime = 3 ' End With '動画をスライド中央に配置 With ActiveWindow.Selection.ShapeRange .Align msoAlignCenters, True .Align msoAlignMiddles, True End With End Select Next End With Fin: ActiveWindow.ViewType = tmp 'ウィンドウの表示モードを元に戻す End Sub

試したこと

上記のコードを作成し1. は達成することができました.
しかし,2. についてはAnimationSettingsで
.PlayOnEntry = msoTrue
としているにも関わらず,「自動」になりません…
アニメーションウィンドウで開始のタイミングを
「直前の動作と同じ」に手動ですると,動画の開始も「自動」
になるのですが,VBAで挿入した動画のTriggerTypeを変更することはできるでしょうか?
新たにエフェクトを加えることはできたのですが,既に挿入されている動画のTriggerTypeを
変更するコードの書き方がわかりませんでした.
もしくは,2. について正しいやり方を教えて下さい.

補足情報(FW/ツールのバージョンなど)

以下,二つのサイトを参考にコードを書きました
https://plaza.rakuten.co.jp/takupin/diary/201801260001/
https://docs.microsoft.com/ja-jp/office/vba/api/powerpoint.playsettings.playonentry

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

これでどうでしょうか。

VBA

1sld.TimeLine.MainSequence(1).Timing.TriggerType = msoAnimTriggerWithPrevious

投稿2021/10/11 08:58

jinoji

総合スコア4592

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yu_my

2021/10/12 02:45

早々にご回答ありがとうございます.挿入した動画の開始が「自動」に変更されました! ただ,pptm形式で保存しているため,スライドショーにしても動画は再生されませんでした. 試しにpptm形式からpptx形式に変更しても自動再生されず… 新たにPPTを立ち上げて,スライドをコピー&貼り付けすることで,スライドショーの際に自動再生することができました. 大変助かりました.どうもありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問