首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powerpoint动画自动化

Powerpoint动画自动化
EN

Stack Overflow用户
提问于 2018-10-01 23:16:55
回答 2查看 261关注 0票数 0

我正在尝试添加一些图片(比如3张图片)到幻灯片上,然后使用VBA为每一张图片设置动画效果。我想控制动画的顺序,以及动画类型和每个动画之间的持续时间。请帮帮忙。下面是我写的代码。

代码语言:javascript
复制
    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
EN

回答 2

Stack Overflow用户

发布于 2018-10-05 12:38:18

您应该包含完整的代码示例,并确保使用option explicit。建议将.AdvanceMode更改为ppAdvanceOnTime。例如:

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2018-10-26 22:28:46

您(两者)都在使用2002年以前版本的遗留代码。您需要使用较新的Timeline对象

代码语言:javascript
复制
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

结束子对象

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52594152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档