アニメーション付きの形状を削除して、アニメーションなしでスライドの印刷画面を作成しようとしています。その後、元に戻したいので、元に戻すコマンドを使用します。問題は、このコマンドが遅くまで機能していることです。つまり、すべての vba コードが終了したときに元に戻すことができ、コマンドを呼び出したときに元に戻す必要があります。コードを数秒間停止しようとしていますが、機能していません。私が使用しているコードは次のとおりです。
For Each sl In ActivePresentation.Slides
shapeNum = sl.Shapes.count
'ActivePresentation.Slides(1).Shapes(1).
While shapeNum <> 0
If sl.Shapes(shapeNum).AnimationSettings.Animate = msoTrue Then
animationNum = animationNum + 1
sl.Shapes(shapeNum).Delete
animationNum = animationNum + 1
End If
shapeNum = shapeNum - 1
Wend
Next
ActivePresentation.SaveAs "c:\dink_template\created_files", ppSaveAsPNG, msoTrue
If animationNum <> 0 Then
Application.CommandBars.ExecuteMso "Undo"
'to make the code stop for 5 seconds
waitTime = 5
Start = Timer
While Timer < Start + waitTime
Wend
End If
' Here the code continues doing several things
また、MsgBox または別の方法で停止しようとしています: http://www.pptfaq.com/FAQ00466_Put_your_macro_to_Sleep.htm
しかし、何も機能せず、5秒間何もしませんが、コードを終了するまで元に戻す機能は機能しません。機能するのは、デバッガーを使用することです。デバッガーで停止すると動作しますが、コードをマクロとして配置すると使用できなくなるため、デバッガーを使用せずに実行したいと考えています。