사진 여러장이 넘어가게 할 때 두 가지 방법이 있습니다.

1. 한 슬라이드안에 여러 사진을 넣어두고 차례로 애니메이션으로 나타나게 하는 것과

2. 각 슬라이드마다 사진을 넣어서 슬라이드가 자동 전환이 되게 하는 방법 입니다.

2번 방법은 삽입 > 사진앨범 기능을 이용하면 자동으로 여러장의 사진이 각 슬라이드에 자동으로 삽입이 됩니다.

그리고 전환에서 모핑 전환을 적용하면 좋습니다.

그런데 사진을 띄울 때 랜덤으로 순서가 섞이게 하려면 어느 방법이든 VBA를 이용해야 합니다.

2번 방법에서 슬라이드 순서를 섞는 것은 기존 답변( 슬라이드 섞기 , 랜덤슬라이드쇼 ) 을 참고해주세요.

1번 방법은 손이 더 가는 방법이지만 2번방식인 전체 슬라이드 전환과 달리 기존 화면에서 새로운 사진만 나타나게 할 수 있는 장점이 있습니다.

VBA를 이용해서 1번 방법으로 자동으로 순서가 섞여서 사진이 부드럽게 나타나고 사라지도록 해보았습니다.

첨부파일을 다운로드 하고 파일 속성에서 '차단해제'후 적용확인후 매크로 허용해서 열어보세요.

사진들이 들어 있는 슬라이드는 1번 슬라이드입니다.

1번 슬라이드에 사진을 원하는 만큼 삽입하면 됩니다.

사진의 크기가 같지 않아도 됩니다.

사진을 섞을 회수는 지정이 가능합니다.

현재 10회인데 1슬라이드의 10개의 사진을 10회 랜덤하게 섞게 됩니다.

슬라이드쇼를 실행하면

1슬라이드로 이동하면

1슬라이드의 모든 사진의 목록을 정리해서

순서를 섞어서 지정된 회수만큼(10회)

나타나기(밝기변환) 효과와 사라지기 효과를 자동으로 추가해줍니다.

슬라이드쇼 설정이 ESC를 누를 때까지 반복상태이고 각 슬라이드는 0초 후 전환이라서

슬라이드쇼는 계속 반복되고 1슬라이드로 이동하면 다시 또 사진 애니메이션 순서가 섞이게 됩니다.

실행화면:

 

 

스톡이미지를 이용한 랜덤 사진 슬라이드쇼:

 
아래가 사용된 코드입니다.
더보기
Option Explicit

Const TargetSlide As Long = 1  '사진 슬라이드 번호
Const RepeatCount As Long = 2  '사진 섞을 횟수

Sub AddRandomPictureAnimation()

    Dim sld As Slide
    Dim shp As Shape
    Dim eft As Effect
    Dim i As Integer, c As Integer, r As Integer, rep As Integer
    Dim Pic() As Long, t As Long
    
    '대상 슬라이드
    Set sld = ActivePresentation.Slides(TargetSlide)
    
    With sld.TimeLine.MainSequence
        '기존 그림에 대한 애니메이션 삭제
        For i = .Count To 1 Step -1
            If .Item(i).Shape.Type = msoPicture Then
                .Item(i).Delete
            End If
        Next i
    
        '그림 개체 목록 구하기
        For Each shp In sld.Shapes
            If shp.Type = msoPicture Then
                c = c + 1
                ReDim Preserve Pic(1 To c)
                Pic(c) = shp.ZOrderPosition
            End If
        Next shp
        
        '애니메이션 추가
        For rep = 1 To RepeatCount  '반복하고 싶은 회수
        
            '개체 순서 섞기
            For i = 1 To c
                r = Int(Rnd * c) + 1
                t = Pic(r)
                Pic(r) = Pic(i)
                Pic(i) = t
            Next i
        
            For i = 1 To c
                '밝기변화(나타나기) 효과
                Set eft = .AddEffect(sld.Shapes(Pic(i)), msoAnimEffectFade, , msoAnimTriggerWithPrevious)
                eft.Timing.Duration = 2
                If rep > 1 Or i > 1 Then eft.Timing.TriggerDelayTime = 1.5 '지연시간=이전 사진보는 시간
                
                '흐려지면서 사라지기 효과 추가
                Set eft = .AddEffect(sld.Shapes(Pic(i)), msoAnimEffectFade, , msoAnimTriggerAfterPrevious)
                eft.Exit = msoTrue
                eft.Timing.Duration = 1
                eft.Timing.TriggerDelayTime = 1.5                '지연시간=이전 사진보는 시간
            Next i
        Next rep
             
    End With
End Sub


Sub onSlideShowPageChange(SSW As SlideShowWindow)
    '1슬라이드이면 사진 순서 섞어서 애니메이션 추가
    If SSW.View.Slide.SlideIndex = TargetSlide Then
        AddRandomPictureAnimation
    End If
End Sub

 

샘플 파일 첨부합니다.

1슬라이드에 사진들만 추가하고 쇼를 시작하기만 하면 됩니다.

코드에 1슬라이드에서 사진을 반복할 회수나 나타내기나 사라지기할 애니메이션 시간 정도를 수정할 수 있습니다.

 

 

랜덤사진1.pptm
2.78MB