관련: 지식인

 

 

일반적인 방법으로는 슬라이드 편집화면에서 슬라이드가 바뀔 때마다 동영상이 자동으로 재생되게 할 수는 없습니다.

재생 탭의 '자동 실행'은 슬라이드쇼에서 슬라이드 진입하자 마자 자동으로 재생하는 옵션입니다.

유일한 방법은 영상을 선택하고 '반복 재생'에 체크된 상태에서 왼쪽의 '재생' 버튼을 눌러주는 방법밖에 없습니다.

슬라이드가 바뀌면 정지됩니다.

일반적인 방법으로는 비디오를 계속 재생시킬 수 없는데

아래 링크 답변은 파일을 열자마자 비디오 재생을 포함한 애니메이션을 강제로 반복 재생시키는 예시입니다.

 

https://kin.naver.com/qna/detail.naver?d1id=1&dirId=102020103&docId=405978606

 

그리고 비디오의 경우는 미리보기를 해도 비디오 이후에 다른 애니메이션이 있어야만 미리보기 명령을 내렸을 때 재생이 됩니다. 다른 애니메이션이 없으면 재생되지 않습니다.

 

 

여기서 지난번 슬라이드가 추가/삭제될 때 페이지수를 자동으로 변경하는 방법과 비슷하게

슬라이드가 바뀌는 이벤트를 감시해서 파일이 열리고 슬라이드가 바뀔 때마다

MoviePlayPreview 라는 idMSO 명령을 이용해서 동영상을 강제로 재생시키도록 만들어 보았습니다.

 

1. 먼저 클래스를 추가하고 슬라이드가 바뀔 때마다 SlideSelectionChanged 이벤트를 감시하도록 합니다. 슬라이드가 바뀌면 슬라이드의 비디오를 재생하는 VidPlay 함수를 호출하도록 합니다.

 

 2. 그 다음 모듈을 하나 추가하고 추가한 Class1 클래스 형식으로 HostObj를 정의하고 초기화합니다.

이제 onLoad가 실행되기만 하면 클래스가 초기화되어 선택된 슬라이드가 바뀌는지 모니터를 시작하게 됩니다. 

 

 

3. onLoad가 파일을 열자마자 실행되도록  CustomUI.xml을 이용하겠습니다. (CustomUI.xml는 파일이 편집모드로 열리고 리본메뉴가 초기화될 때 불러와서 실행됩니다.)

Office Ribbon Editor 를 이용하는 경우 pptm 파일을 먼저 열고 오른쪽 창에서 CutomUI Parts에서 호환성을 위해 낮은 버전인 2007버전의 CustomUI를 추가한 뒤에 아래 XML코드를 입력합니다.

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="onLoad"></customUI>

 

pptm파일은 파워포인트에서 열린 상태이면 읽기전용이라 편집이 안되므로 닫고 나서 Office Ribbon Editor에서 불러오세요. 디스켓모양을 누르고 저장합니다. XML 코드에 이상이 없어야 저장이 됩니다.

 

 

4. 이제 모듈에 슬라이드상의 비디오를 자동으로 재생하는 VidPlay 에 대한 코드를 입력합니다.

더보기
Option Explicit

Dim HostObj As Class1

'//자동 실행
Sub onLoad()

    Set HostObj = New Class1
    
End Sub

Sub VidPlay()

    Dim sld As Slide
    Dim shp As Shape
    Dim eft As Effect
    
    Set sld = ActiveWindow.View.Slide
    For Each shp In sld.Shapes
        If shp.Type = msoMedia Then
            shp.Select
            'Set eft = sld.TimeLine.MainSequence.FindFirstAnimationFor(shp)
            'eft.Timing.RepeatCount = 999
            DoEvents
            'SendKeys "%(jnp)"
            Application.CommandBars.ExecuteMso "MediaPlayPreview"
        End If
    Next shp
    
End Sub

 

비디오를 선택하고 CommandBars.ExecuteMso "MediaPlayPreview" 를 실행하는 것이 핵심입니다.

 

 

아래는 실제 실행 영상입니다. 슬라이드가 바뀔 때마다 비디오 미리보기를 실행합니다.

 

 

 

 

'반복 재생'에 체크된 비디오의 경우 계속 반복재생됩니다.

슬라이드에 두 개이상의 비디오가 있는 경우 특히 로컬 비디오는 재생되지 않습니다.

온라인 비디오은 재생되기도 하고 하나만 재생되기도 합니다.

 

 

샘플 파일:

AutoVidPlay1.pptm
8.63MB