liguocai 发表于 2016-4-12 13:32:31

利用VBA在PowerPoint添加自定义动画路径

利用VBA在PowerPoint添加自定义动画路径
原创:FinalSoldier (令狐虫),本人做了部分修改。

[*]
[*]Sub AddMotionPath3()
[*] Dim shpNew As Shape
[*] Dim effNew As Effect
[*] Dim aniMotion As AnimationBehavior
[*] Set shpNew = ActivePresentation.Slides(1).Shapes _
[*] .AddShape(Type:=msoShape5pointStar, Left:=10, _
[*] Top:=0, Width:=100, Height:=200)
[*] Set shpNew = ActivePresentation.Slides(1).Shapes(3)
[*] Set effNew = ActivePresentation.Slides(1).TimeLine.MainSequence _
[*] .AddEffect(Shape:=shpNew, effectId:=msoAnimEffectCustom, _
[*] Trigger:=msoAnimTriggerOnPageClick)
[*] Set aniMotion = effNew.Behaviors.Add(msoAnimTypeMotion)
[*] With aniMotion.MotionEffect
[*] .Path = "M 0 0 L 0.1 0.05 L 0.2 -0.15 L 0.3 -0.05 L 0.4 -0.15 L 0.5 -0.05 L 0.6 -0.15 L 0.7 -0.05 L 0.8 -0.15 L 0.9 -0.05 L 1.0 -0.15 L 0.9 -0.05 L 0.8 -0.15 L 0.7 -0.05 L 0.6 -0.15 L 0.5 -0.05 L 0.4 -0.15 L 0.3 -0.05 L 0.2 -0.15 L 0.1 0.05 "
[*] End WithEnd Sub

复制代码
1.放映时,新增加的形状不可见,只有进行动画时该形状才可见,
2.动作路径不可见,但动作路径是对的。
改的部分:
原作是“.Path = "M 0 0 L 0.17014 0.05157 L 0.27761 -0.15518 L 0.36268 -0.04972 L 0.42987 -0.10338 " ”。
本人是".path=”是现在的。我想让这个图形能来回,当然要是能设置像正弦函数、余弦函数图像曲线、圆曲线、椭圆方程曲线就好了。希望后来者能更好的实现。
感谢原作者。

user_tiuky 发表于 2016-4-12 15:46:42

这个。。。。。好难!!

ej4167 发表于 2016-4-12 17:03:33

技术含量太高

user_utxxc 发表于 2016-4-12 17:27:10

在Path语法中,大写代表相对位置,小写代表绝对位置。
例如:M 0 0 就意味着从形状的中心位置开始,但是m0 0 就意味着从幻灯片的左上角开始。
类型      语法                                    备注
移动 M      M StartPoint      
直线 L      E EndPoint      
曲线 C      "C ControlPoint1
                ControlPoint2EndPoint"       三次贝兹曲线
闭合 Z      Z      
结束 E      E      
详见【灰师太】PPT动画大师 #8设置行为和属性行为

user_nobmglwm 发表于 2016-4-12 18:06:45

技术活啊!!!
页: [1]
查看完整版本: 利用VBA在PowerPoint添加自定义动画路径