none
powerpoint2016で動画をマクロで再生する方法を教えてください。 RRS feed

  • 質問

  • タイトルの内容について質問させていただきます。

    パワーポイント2016の1スライドに動画をひとつ埋め込んでいます。

    動画自体に再生、一時停止のボタンは付いているのですが、

    同じ操作をマクロで行えないかと方法を探しています。

    (アニメーションによる自動再生は一時停止→再生ができないため、実現できませんでした。)

    (Media Playerは制約で使用できません。(「挿入」→「ビデオ」の動画のみ))

    スライドにはいくつかシェイプが存在し、その中で動画のシェイプがあれば再生したいです。

    以下途中まで作成したものになります。

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

    Sub startMovieAction()
        Dim shp As Shape
        Dim i As Integer

        i = ActiveWindow.Selection.SlideRange.SlideIndex

        For Each shp In ActivePresentation.Slides(i).Shapes
            If shp.Type = msoMedia Then
                If shp.MediaType = ppMediaTypeMovie Then
                    'ここで動画再生したい
                End If
            End If
        Next shp
    End Sub

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

    どなたかご教示いただけると幸いです。

    宜しくお願いいたします。

    2017年4月14日 9:24

回答

  • こんな?

    ’スライドショーで表示している状態で
    Private Sub CommandButton1_Click()
        '最初から再生
        If (Application.SlideShowWindows.Count = 1) Then
            Dim v As SlideShowView
            Set v = Application.SlideShowWindows.Item(1).View
            Dim shp As Shape
            For Each shp In v.Slide.Shapes
                If (shp.Type = msoMedia) Then
                    Dim p As Player
                    Set p = v.Player(shp.Id)
                    If Not (p Is Nothing) Then
                        p.CurrentPosition = 0
                        p.Play
                    End If
                End If
            Next
        End If
    End Sub
    
    Private Sub CommandButton2_Click()
        '中断と再開
        If (Application.SlideShowWindows.Count = 1) Then
            Dim v As SlideShowView
            Set v = Application.SlideShowWindows.Item(1).View
            Dim shp As Shape
            For Each shp In v.Slide.Shapes
                If (shp.Type = msoMedia) Then
                    Dim p As Player
                    Set p = v.Player(shp.Id)
                    If Not (p Is Nothing) Then
                        If (p.State = ppPaused) Then
                            p.Play
                        Else
                            p.Pause
                        End If
                    End If
                End If
            Next
        End If
    End Sub


    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    2017年4月14日 16:23

すべての返信

  • こんな?

    ’スライドショーで表示している状態で
    Private Sub CommandButton1_Click()
        '最初から再生
        If (Application.SlideShowWindows.Count = 1) Then
            Dim v As SlideShowView
            Set v = Application.SlideShowWindows.Item(1).View
            Dim shp As Shape
            For Each shp In v.Slide.Shapes
                If (shp.Type = msoMedia) Then
                    Dim p As Player
                    Set p = v.Player(shp.Id)
                    If Not (p Is Nothing) Then
                        p.CurrentPosition = 0
                        p.Play
                    End If
                End If
            Next
        End If
    End Sub
    
    Private Sub CommandButton2_Click()
        '中断と再開
        If (Application.SlideShowWindows.Count = 1) Then
            Dim v As SlideShowView
            Set v = Application.SlideShowWindows.Item(1).View
            Dim shp As Shape
            For Each shp In v.Slide.Shapes
                If (shp.Type = msoMedia) Then
                    Dim p As Player
                    Set p = v.Player(shp.Id)
                    If Not (p Is Nothing) Then
                        If (p.State = ppPaused) Then
                            p.Play
                        Else
                            p.Pause
                        End If
                    End If
                End If
            Next
        End If
    End Sub


    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    2017年4月14日 16:23
  • gekka様

    ご返信ありがとうございます。

    ご提示していただいた内容で実装したところ、

    スライドショー時に想定した動作ができるようになりました。

    スライドショー時ではなく、編集モードの場合でも動作したいのですが、

    何か方法がありますでしょうか?

    また、動画は複数同時再生したいと考えています。

    ご存知なことがあれば、ご教示お願いいたします。


    • 編集済み marokaru 2017年4月17日 5:50
    2017年4月17日 2:49