大众计算机学习网

专门提供各种电脑教程

通过VBA中的Effect对象给PowerPoint动态添加动画效果

Admin | 2010-7-4 19:14:50 | 被阅次数 | 7636

  如何通过VBA程序代码,给演示文稿PowerPoint中的对象动态的添加动画效果?

  下面是一个实例,希望对您有所启发。 

  本例:在当前演示文稿的第一张幻灯片中添加一个形状,并为该形状添加一种效果和一个动作。

  Sub MyNewShapeAndEffect()'动态添加一个图形
  Dim shpStar As Shape
  Dim sldOne As Slide
  Dim effNew As Effect
  Set sldOne = ActivePresentation.Slides(1)
  Set shpStar = sldOne.Shapes.AddShape(Type:=msoShape5pointStar, Left:=150, Top:=72, Width:=400, Height:=400)
  Set effNew = sldOne.TimeLine.MainSequence.AddEffect(Shape:=shpStar, EffectId:=msoAnimEffectStretchy, Trigger:=msoAnimTriggerAfterPrevious)
  With effNew
   With .Behaviors.Add(msoAnimTypeScale).ScaleEffect
    .FromX = 75
    .FromY = 75
    .ToX = 0
    .ToY = 0
   End With
   .Timing.AutoReverse = msoTrue
   End With
  End Sub

  若要引用现有的 Effect对象,请使用MainSequence(index),其中 index 是 Effect对象在Sequence集合中的编号。本示例更改第一个序列的效果并为该效果指定动作。

  Sub MyChangeEffect()
  With ActivePresentation.Slides(1).TimeLine _
        .MainSequence(1)
        .EffectType = msoAnimEffectSpin
        With .Behaviors(1).RotationEffect
            .From = 100
            .To = 360
            .By = 5
        End With
  End With
  End Sub

  不管幻灯片是否有动画,每张幻灯片中至少有一个 Effect对象。

  本代码适合于开发者所借鉴。