パワー ポイント プレゼンテーションのスライドでプレゼンテーション中に実行される vba スクリプトがあります。同じスライドにアニメーションがあります。アニメーションが実行されると、スクリプトは「バックグラウンドで」正常に実行されますが、アニメーションの特定のステップで、vba-script の実行方法を変更したいと思います。タイムライン オブジェクトまたは他の場所をチェックして、アニメーションがどこまで実行されたかを確認するか、正しいステップに到達したときにイベントをトリガーしますが、何も見つかりませんでした。
これは現時点での私のスクリプトです (放射性線源を示し、全方向に放射性物質を送り出します)
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public Running As Boolean ' Switched on or off by another sub
Sub DrawLines()
Dim endx As Long
Dim endy As Long
Dim Slideid As Long
Dim tetha As Double
Dim origx As Long
Dim origy As Long
Dim linelength As Long
Dim tl As TimeLine
Slideid = 2
origx = 100
origy = 430
linelength = 2000
Dim newline As Shape
While Running
With ActivePresentation.Slides(Slideid).Shapes
tetha = 2 * 3.1415 * Rnd()
endx = Int(linelength * Sin(tetha))
endy = Int(linelength * Cos(tetha))
' Here I want to alter endx and endy after a certain step in the animation
Dim sleeptime As Long
sleeptime = Int(500 * Rnd())
Set newline = .AddLine(origx, origy, endx, endy)
DoEvents ' needed to redraw
Sleep (30)
newline.Delete
DoEvents ' needed to redraw
Sleep (sleeptime)
End With
Wend
End Sub
endx と endy を変更したい時点で、次のようなものを探していました
IF Activepresentation.slides(slideid).timeline.activestep>=5 THEN
dosomething()
End if
または、次のようなものを作ることができれば
Public Changed as boolean
Sub OnSlideShowAnimationStep( .... )
IF currentstep >=5
Changed = TRUE
end if
end sub
その後、ドローラインの Changed を確認できますが、現在のアニメーション ステップを示す属性も、アニメーション ステップで発生するイベントも見つかりません。他に見るべきだった場所はありますか?