我正在尝试添加一些图片(比如3张图片)到幻灯片上,然后使用VBA为每一张图片设置动画效果。我想控制动画的顺序,以及动画类型和每个动画之间的持续时间。请帮帮忙。下面是我写的代码。
Set MainSlide = ActivePresentation.Slides(1)
Set BG1 = MainSlide.Shapes.AddPicture("C:\Users\XXX\Desktop\Sandhya_PPT_Task\Picture1.png", msoFalse, msoTrue, 0, 0, 959.76, 540)
Set BG2 = MainSlide.Shapes.AddPicture("C:\Users\XXX\Desktop\Sandhya_PPT_Task\Picture2.png", msoFalse, msoTrue, 0, 0, 959.76, 540)
With BG2.AnimationSettings
.EntryEffect = ppEffectFade
.AnimationOrder = 1
.AdvanceMode = ppAdvanceAfterPrevious
.AdvanceTime = 0.5
End With
Set BG3 = MainSlide.Shapes.AddPicture("C:\Users\XXX\Desktop\Sandhya_PPT_Task\Picture3.png", msoFalse, msoTrue, 0, 90, 959.76, 429.84)
With BG3.AnimationSettings
.EntryEffect = ppEffectFade
.AnimationOrder = 2
.AdvanceMode = ppAdvanceAfterPrevious
.AdvanceTime = 0.5
End With
End Sub发布于 2018-10-05 12:38:18
您应该包含完整的代码示例,并确保使用option explicit。建议将.AdvanceMode更改为ppAdvanceOnTime。例如:
Option Explicit
Public Sub CreateAnimation()
Dim MainSlide As Slide
Dim BG1 As Shape
Dim BG2 As Shape
Dim BG3 As Shape
Set MainSlide = ActivePresentation.Slides(1)
Set BG1 = MainSlide.Shapes.AddPicture("C:\Users\XXX\Desktop\Sandhya_PPT_Task\Picture1.png", msoFalse, msoTrue, 0, 0, 959.76, 540)
Set BG2 = MainSlide.Shapes.AddPicture("C:\Users\XXX\Desktop\Sandhya_PPT_Task\Picture2.png", msoFalse, msoTrue, 0, 0, 959.76, 540)
With BG2.AnimationSettings
.EntryEffect = ppEffectFade
.AnimationOrder = 1
.AdvanceMode = ppAdvanceOnTime
.AdvanceTime = 0.5
End With
Set BG3 = MainSlide.Shapes.AddPicture("C:\Users\XXX\Desktop\Sandhya_PPT_Task\Picture3.png", msoFalse, msoTrue, 0, 90, 959.76, 429.84)
With BG3.AnimationSettings
.EntryEffect = ppEffectFade
.AnimationOrder = 2
.AdvanceMode = ppAdvanceOnTime
.AdvanceTime = 0.5
End With
End Sub发布于 2018-10-26 22:28:46
您(两者)都在使用2002年以前版本的遗留代码。您需要使用较新的Timeline对象
Sub animate_Pics()
Dim Pic1 As Shape
Dim pic2 As Shape
Dim pic3 As Shape
Dim osld As Slide
Dim oeff As Effect
Set osld = ActivePresentation.Slides(1)
Set Pic1 = osld.Shapes.AddPicture("C:\Users\xx\Desktop\john1.jpg", msoFalse, msoTrue, 10, 10)
Pic1.Name = "John1"
Set pic2 = osld.Shapes.AddPicture("C:\Users\xx\Desktop\john2.jpg", msoFalse, msoTrue, 10, 10)
pic2.Name = "John2"
Set pic3 = osld.Shapes.AddPicture("C:\Users\xx\Desktop\john3.jpg", msoFalse, msoTrue, 10, 10)
pic3.Name = "John3"
Set oeff = osld.TimeLine.MainSequence.AddEffect(Pic1, msoAnimEffectFade, , msoAnimTriggerOnPageClick)
oeff.Timing.Duration = 2
Set oeff = osld.TimeLine.MainSequence.AddEffect(pic2, msoAnimEffectFade, , msoAnimTriggerOnPageClick)
oeff.Timing.Duration = 2
oeff.MoveTo 2
Set oeff = osld.TimeLine.MainSequence.AddEffect(pic3, msoAnimEffectFade, , msoAnimTriggerOnPageClick)
oeff.Timing.Duration = 2
oeff.MoveTo 3结束子对象
https://stackoverflow.com/questions/52594152
复制相似问题