一、Effect对象
代表有关幻灯片动画的计时信息。
使用 Effect 对象
使用 AddEffect 方法添加一个效果。本示例在当前演示文稿的第一张幻灯片中添加一个形状,并为该形状添加一种效果和一个动作。
Sub NewShapeAndEffect()
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 ChangeEffect()
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 对象。
二、EffectInformation对象
代表 Effect 对象的各种动画选项。
使用 EffectInformation 对象
使用 EffectInformation 对象的成员返回 Effect 对象的当前状态(例如,动画播放后的效果、背景是否与相应的文本一起动画显示、文本是否要反向动画显示、播放设置、声音效果、文本创建动作等等)。EffectInformation 对象的所有成员都是只读的。若要更改任何效果信息属性,必须使用相应的 Sequence 对象的方法。
使用 Effect 对象的 EffectInformation 属性返回 EffectInformation 对象。以下示例设置主动画序列中的播放设置的 HideWhileNotPlaying 属性。
Sub HideEffect()
ActiveWindow.Selection.SlideRange(1).TimeLine _
.MainSequence(1).EffectInformation.PlaySettings _
.HideWhileNotPlaying = msoTrue
End Sub
三、EffectParameters对象
代表 Effect 对象的各种动画参数,如颜色、字体、大小和方向。
使用 EffectParameters 对象
使用 Effect 对象的 EffectParameters 属性返回 EffectParameters 对象。以下示例创建一个形状,然后设置填充效果并更改起始和结束填充颜色。
Sub effParam()
Dim shpNew As Shape
Dim effNew As Effect
Set shpNew = ActivePresentation.Slides(1).Shapes _
.AddShape(Type:=msoShapeHeart, Left:=100, _
Top:=100, Width:=150, Height:=150)
Set effNew = ActivePresentation.Slides(1).TimeLine.MainSequence _
.AddEffect(Shape:=shpNew, EffectID:=msoAnimEffectChangeFillColor, _
Trigger:=msoAnimTriggerAfterPrevious)
With effNew.EffectParameters
.Color1.RGB = RGB(Red:=0, Green:=0, Blue:=255)
.Color2.RGB = RGB(Red:=255, Green:=0, Blue:=0)
End With
End Sub