【PowerPoint】 슬라이드를 랜덤으로 표시

소개



슬라이드를 무작위로 정렬하는 PowerPoint 매크로 을 베이스로 슬라이드의 순서를 랜덤으로 바꾸는 매크로를 만들어 보았습니다.
  • 슬라이드를 무작위로 만들기
  • 슬라이드를 2장 세트로 랜덤하게 한다



  • 매크로 실행 타이밍



    슬라이드 쇼 종료시 매크로를 실행합니다.
    슬라이드 쇼를 재생하기 전에 슬라이드를 재배치하는 것은 어렵게 슬라이드 쇼를 한 번 재생하고, 다음에 슬라이드 쇼를 재생할 때 슬라이드의 순서가 랜덤으로 재배열된다는 방법으로 했다.
    ※코드는 Slide 모듈에 기재해 주십시오.

    슬라이드를 무작위로 만들기



    플래시 카드를 1장씩 랜덤으로 교체한다.

    코드


    
    Public Sub OnSlideShowTerminate(ByVal Wn As SlideShowWindow)
    
        Dim sld As Long
        Dim cnt As Long
        Dim i As Long
    
        cnt = ActivePresentation.Slides.Count
        If cnt < 2 Then Exit Sub
        ActiveWindow.ViewType = ppViewSlideSorter
        Randomize
    
        For i = 1 To cnt
    
            sld = (cnt - 2) * Rnd + 2
            ActivePresentation.Slides(sld).Select
            ActiveWindow.Selection.Cut
            ActivePresentation.Slides(cnt - 1).Select
            ActiveWindow.View.Paste 
    
        Next i
    
        ActiveWindow.ViewType = ppViewNormal 
    End Sub
    

    해설


    
    Public Sub OnSlideShowTerminate(ByVal Wn As SlideShowWindow)
    

    슬라이드를 종료했을 때에 매크로를 자동 실행한다.
    Excel의 Auto_Open이나 Word의 AutoOpen 같은 것.
    
    cnt = ActivePresentation.Slides.Count
    

    슬라이드 수를 계산합니다.
    
    If cnt < 2 Then Exit Sub
    

    슬라이드가 2장(타이틀 슬라이드 포함)보다 적은 경우는 순서를 바꿀 수 없기 때문에, 매크로 종료.
    
    ActiveWindow.ViewType = ppViewSlideSorter
    Randomize
    

    슬라이드 일람 모드로 해 난수를 초기화.
    
    For i = 1 To cnt
    
        sld = (cnt - 2) * Rnd + 2
    
        ActivePresentation.Slides(sld).Select
        ActiveWindow.Selection.Cut
        ActivePresentation.Slides(cnt - 1).Select
        ActiveWindow.View.Paste 
    
    Next i
    

    여기에서는 타이틀 슬라이드를 제외한 슬라이드 번호를 랜덤으로 지정하고, 컷 & 페이스트를 행함으로써 순서를 바꾸고 있다.
    그것을 슬라이드 수, 반복한다.
    ActiveWindow.ViewType = ppViewNormal 
    

    마지막으로 표준 모드로 되돌아가 종료.

    슬라이드를 2장 세트로 랜덤하게 한다



    플래시 카드에서는 문제와 해답을 세트로 랜덤하게 하고 싶은 경우도 있다.

    코드


    
    Public Sub OnSlideShowTerminate(ByVal Wn As SlideShowWindow)
        Dim sld As Long
        Dim cnt As Long
        Dim i As Long
    
        cnt = ActivePresentation.Slides.Count
    
        If cnt < 4 Then Exit Sub
    
        ActiveWindow.ViewType = ppViewSlideSorter
        Randomize
    
        For i = 1 To cnt
    
            sld = (cnt - 2) * Rnd + 2
    
            If sld Mod 2 = 0 Then
                ActivePresentation.Slides.Range(Array(sld, sld + 1)).Select
                ActiveWindow.Selection.Cut
                ActivePresentation.Slides(cnt - 2).Select
                ActiveWindow.View.Paste
    
            Else
                i = i - 1
            End If    
        Next i
        ActiveWindow.ViewType = ppViewNormal
    End Sub
    

    해설



    위의 매크로와 변경된 부분은
    If sld Mod 2 = 0 Then
        ActivePresentation.Slides.Range(Array(sld, sld + 1)).Select
        ActiveWindow.Selection.Cut
        ActivePresentation.Slides(cnt - 2).Select
        ActiveWindow.View.Paste
    Else
        i = i - 1
    End If
    

    이 부분.

    슬라이드 번호가 홀수라면 문제와 해답이 떨어져 버리기 때문에 짝수인 경우에만 실행한다.
    선택한 슬라이드와 그 다음 슬라이드를 잘라내어 붙여넣습니다.
    홀수의 경우는 반복하는 횟수를 늘린다.

    요약



    주로 교육 현장에서 사용되는 플래시 카드를 파워 포인트에서 무작위로 재생하는 방법에 대해 설명했습니다.
  • 슬라이드를 무작위로 재생합니다
  • 문제와 해답 슬라이드를 세트로 무작위로 한다

  • 슬라이드 수나 슬라이드 내용을 변경해도 문제가 없습니다.
    타이틀에는 「요~이!」라고 넣어 보세요.
    플래시 카드 설정은 타이틀 슬라이드 이후의 슬라이드를 선택하고 화면 전환 타이밍을 자동으로 하여 시간을 설정하십시오.

    덧셈, 뺄셈, 99등에 꼭 활용해 주세요.

    응용 프로그램은 여기

    좋은 웹페이지 즐겨찾기