1

是否可以从 VBA 代码触发形状动画?

绒球

4

2 回答 2

3

绒球,

在低于 powerpoint 2010 的任何版本中,不,它似乎不可能: http: //www.pptalchemy.co.uk/vba_Triggers.html

但是,如果您使用的是 powerpoint 2010,MSDN 详细介绍了在 powerpoint 中触发形状动画的简单演示:

Sub TestShapeAnimation()

    With ActivePresentation.Slides(1)
        Dim shp1, shp2, shp3 As Shape
        ' This sets the initial shape, with which we will test the animation sequences.
        Set shp1 = .Shapes.AddShape(msoShape12pointStar, 20, 20, 100, 100)

        ' This creates the animations.
        .TimeLine.MainSequence.AddEffect shp1, msoAnimEffectFadedSwivel, , msoAnimTriggerAfterPrevious
        .TimeLine.MainSequence.AddEffect shp1, msoAnimEffectPathBounceRight, , msoAnimTriggerAfterPrevious
        .TimeLine.MainSequence.AddEffect shp1, msoAnimEffectSpin, , msoAnimTriggerAfterPrevious

        ' This acquires the animation... [i]
        shp1.PickupAnimation

        ' [i] ... and applies it to another shape.
        Set shp2 = .Shapes.AddShape(msoShapeHexagon, 100, 20, 100, 100)
        shp2.ApplyAnimation

        ' Another shape creation / animation application.
        Set shp3 = .Shapes.AddShape(msoShapeCloud, 180, 20, 100, 100)
        shp3.ApplyAnimation

    End With

End Sub

如果您还有其他问题/想法,请告诉我 -

~乔尔

于 2012-07-27T16:59:02.883 回答
2

不幸的是,JackOrangeLantern 的回答对原始问题并没有特别敏感。JOL 的响应将帮助您在时间轴上复制动画并将它们应用到不同的形状,但它不会真正触发它们。

如果您有 Powerpoint 2010 或更早版本,则无法直接使用 VBA 实际触发动画。我对新版本的 Powerpoint 不是很熟悉,但我认为它们也没有这个功能。

实际上触发交互式动画似乎需要实际的鼠标单击,如果没有一些可能涉及实际混淆 Windows API 的高级且过于复杂的编码,则无法在 Powerpoint 中轻松模拟。我为此找到的最佳解决方法是不要将鼠标点击发送到幻灯片上的形状,而是发送键盘敲击。

我从 PPT Alchemy Mouseover 中发现了这个解决方案 trigger an animation with vba code

Sub anim()
   SendKeys("{TAB}")
   SendKeys("{ENTER}")
End Sub

此代码将激活幻灯片上的第一个交互式触发器。要激活幻灯片上的第二个触发动画,您需要发送 {TAB} 键两次而不是一次。这无疑是在 PowerPoint 幻灯片上激活触发动画的最简单方法。很遗憾没有更好的方法。

点击链接以获得更详尽的解释。
小心。:)

于 2018-06-04T03:43:02.103 回答