2017-04-30 5 views
1

슬라이드 쇼는 "Kiosk에서 찾아보기"해야합니다. 나는 다음 키 또는 그와 비슷한 것을 눌러 다음 슬라이드로 이동할 수있는 옵션을 사용자에게 제공하고 싶지 않습니다.VBA를 사용하여 PPT에서 다음 슬라이드로 이동하기 전에 지연을 추가하는 방법

퀴즈 게임입니다. 올바른 옵션을 누르면 다음과 같은 코드는 활성화 :

Sub CorrectAnswer() 
Correct.Caption = (Correct.Caption) + 1 
Percentage.Caption = (Percentage.Caption) + 5 
MsgBox "That was the correct answer!", vbInformation + vbApplicationModal, "FOLK Quiz" 
ActivePresentation.SlideShowWindow.View.Next 
End Sub 

Please check this picture! This is what my presentation looks like

사용자는 네 가지 옵션 중 하나 누른다. 각 상자마다 방아쇠가 있습니다. 트리거가 활성화되면 상자 중 하나가 녹색으로 바뀌고 나머지는 빨간색으로 바뀝니다. 애니메이션을 사용하여이 작업을 수행했습니다.

애니메이션을 마친 후 몇 초 후에 다음 슬라이드로 이동하고 싶습니다. 그러나 어떻게 가능합니까? VBA에서 다음 슬라이드로 이동하는 데 지연을 추가 할 수있는 방법이 있습니까?

답변

0

다음 슬라이드로 이동하기 전에 대기 시간을 추가해야합니다. Application.Wait을 사용하면 가능합니다. 그러면 코드는 다음과 같이 보입니다.

Sub CorrectAnswer() 

    Correct.Caption = (Correct.Caption) + 1 

    Percentage.Caption = (Percentage.Caption) + 5 

    MsgBox "That was the correct answer!", vbInformation + _ 
             vbApplicationModal, "FOLK Quiz" 
    lag = 3 
    start = Timer 

    While Timer < Start + lag 
     DoEvents 
    Wend 


    'Application.Wait(Now + TimeValue("0:00:03")) 'This adds 3 sec delay in ms VBA 

    ActivePresentation.SlideShowWindow.View.Next 

End Sub 
+1

아쉽게도이 코드는 작동하지 않을 것입니다. PowerPoint 응용 프로그램 개체에는 .Wait 메서드가 없습니다. 쇼가 Mac/cloud/etc가 아닌 Windows에서 실행된다는 것을 알고 있다면 Sleep WinAPI 호출을 포함시킬 수 있습니다. 잠자기에 매크로 넣기 http://www.pptfaq.com/FAQ00466_Put_your_macro_to_Sleep.htm –

+0

@SteveRindsberg 권리. DoEvents가 아닌 이유는 무엇입니까? 나는 문서를 봐야했다. 나는 받아 들일 작전이 받아들이지 않았으므로 그렇게하지 않았다. – Masoud

+0

DoEvents가 실제로 DoIt을 수행 할 수도 있습니다 .-) 그러나 PPT에는 적용되지 않으므로 Application.Wait 제안을 제거하기 위해 답장을 편집 할 수 있습니다. 고마워. –