0
슬라이드의 여러 셰이프를 선택하고 선택한 모든 셰이프에서 매크로를 실행하고 싶습니다. 예를 들어, 도형의 애니메이션 지연 시간을 주어진 값만큼 늘리고 싶습니다. 참고 : 일부 도형에는 애니메이션이 두 개 이상있을 수 있습니다.셰이프를 선택하여 PowerPoint VBA 스크립트를 적용하려면 어떻게해야합니까?
지금까지 다음 코드가 있습니다. 그것은 트릭을 수행하지만 현재 슬라이드의 모든 모양에 적용됩니다.
Sub ActiveSlideShapes_DelayInc()
Dim osld As Slide
Dim i As Long
Dim a As Integer
Dim oeff As Effect
Const sngDel As Single = 0.1
Set osld = ActiveWindow.Selection.SlideRange(1)
For i = osld.TimeLine.MainSequence.Count To 1 Step -1
Set oeff = osld.TimeLine.MainSequence(i)
With oeff
.Timing.TriggerDelayTime = .Timing.TriggerDelayTime + sngDel
End With
Next i
End Sub
다른 해결책은 도형 대신 실제 TimeLine 요소를 선택하는 것일 수 있습니다. 그런 다음 선택한 애니메이션에 대해서만 "다음 ..."루프를 수행하십시오. 특정 모양에 여러 개의 다른 애니메이션이 붙어있는 경우이 방법이보다 세련된 솔루션이 될 것입니다. 가능한가요?
이렇게하면 "메서드 또는 데이터 멤버를 찾을 수 없습니다."라는 컴파일 오류가 발생합니다. 두 번째 ". 타이밍"이 오류로 강조 표시됩니다. (이상하게도 ... ".Timing"의 첫 번째 인스턴스에서 오류가 발생할 것으로 예상되는 경우). – Wombat
sngDel은 상수이기 때문에 코드에서 0.1로 바꾸시겠습니까? – mooseman
셰이프 개체에는 오류 메시지가 표시하려고하는 .Timing 속성이 없습니다. 나는 첫 번째 인스턴스에 적용하기 전에 속성 값을 읽도록 요청했기 때문에 .Timing의 두 번째 인스턴스에서 오류가 발생한다고 생각합니다. –