|
* 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.
- 파워포인트 버전(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
|
|