나눔터  
  HOME > 나눔터 > 묻고답하기 > 파워포인트
파워포인트
파워포인트에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내

작성자:  

 배움쟁이 (coolnews)

추천:  0
파일:     연습.pptm (59.1KB) 조회:  1005
제목:   VBA : 재구성슬라이드 시나리오 실행
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

 - 파워포인트 버전(95,97,2000,xp,2003,2007):

* 아래줄에 질문을 작성하세요 >> 
* 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

 - 파워포인트 버전(95,97,2000,xp,2003,2007):

* 아래줄에 질문을 작성하세요 >> 

안녕하세요
고수님의 도움으로 코드를 응용했는데 제가 뭘 빠뜨렸는지 작동이 되지 않아 지도를 부탁드립니다.

시나리오는

1. 시간1 되면 '열시기도' 슬라이드구성 실행 (무한반복)
2. 시간2 되면 '요일별 슬라이드로 바꿔서 실행 (반복없음)
3. 6번 슬라이드에 이르면 해당 페이지에 대기하다가  
    시간3이 되면 7번으로 넘어감
4. 7번에서 30초후 프리젠테이션 종료

인데 

2번에서 재구성슬라이드 첫페이지에 멈춰서 더 진행이 안됩니다 ㅠㅜ

Option Explicit

Dim Started As Boolean
Dim change_time4 As String
Dim change_time3 As String
Public change_time2 As String
Public change_time1 As String
Public now_time As String
Public showname As String

Sub CustomizedShow()

change_time1 = "22:00:00" '//  '열시기도' 슬라이드구성 실행
change_time2 = "22:30:00"   '//  요일별 슬라이드구성 실행
change_time3 = "22:57:00"   '//  슬라이드 종료 준비

    Dim pres As Presentation
    Dim i As Integer, w As Integer, found As Boolean
  
    Started = False
  
    Set pres = ActivePresentation
    
    With pres.SlideShowSettings
        .LoopUntilStopped = msoTrue '반복
        .ShowType = ppShowTypeWindow2  '창 모드
        .RangeType = ppShowNamedSlideShow '재구성된 쇼로
        
        w = Weekday(Now)
                        
        Select Case w
            Case 1 To 4
                showname = "일월화수"
            Case 5 To 7
                showname = "목금토"
        End Select
        
                                    
       If Time < TimeValue(change_time2) Then       '// 10:30 이전에는 '열시기도' 슬라이드 실행
                     
         .SlideShowName = "열시기도"
                   
         While Time < TimeValue(change_time1)       '// 10:00 까지 대기하다가 '열시기도' 슬라이드 실행
              DoEvents
         Wend
        
         .Run
        
       Else
       
        Started = True
       
        .SlideShowName = showname
        .Run
        
       End If
                
    End With
    
End Sub


Public Sub onSlideShowPageChange(ByVal SSW As SlideShowWindow)
  
'  Debug.Print Started, showname, change_time2
  
  
  If Not Started And Time > TimeValue(change_time2) Then
     
     Started = True
     
     SSW.View.GotoNamedShow showname     '// 22:30 이 되면 그날의 슬라이드 실행 : 이 재구성슬라이드의 첫페이지까지만 가고 더 이상 진행이 안됩니다.
           
  End If

  If SSW.View.Slide.SlideID = 259 Then     '// 6번 슬라이드  에서 무한 체류하다가 22:57분에 다음 슬라이드로
        
        
        Debug.Print Time, change_time3
                 
         While Time < TimeValue(change_time3)
               DoEvents
         Wend
         SSW.View.Next
         
         
         
     ElseIf SSW.View.Slide.SlideID = 260 Then     '// 7번 슬라이드  에서 30초 체류 후 슬라이드쇼 종료
        
         change_time4 = Time + 0.00033
         
         Debug.Print Time, change_time4
         
         While Time < TimeValue(change_time4)
               DoEvents
         Wend
         
         MsgBox Time & change_time4
                  
         SSW.View.Exit

  End If
       

    
End Sub


Sub onSlideShowTerminate(SSW As SlideShowWindow)
    '슬라이드쇼 종료시 초기화
    With ActivePresentation.SlideShowSettings
        .RangeType = ppShowAll
    End With
    Started = False
End Sub

 
[불량 게시물 신고]  
        
  

작성일 : 2021-10-30(22:20)
최종수정일 : 2021-10-30(22:20)