使用VBA更改z顺序可以杀死动画触发器(powerpoint)

时间:2014-01-28 19:49:31

标签: vba animation powerpoint powerpoint-vba z-order

我有一个子导入图像并将其放在一个正方形后面,然后在点击时消失(点击时触发动画消失)。

但是在我运行sub之后,触发器停止工作。经过大量搜索后,我发现它是由更改Z顺序的部分引起的。如果我删除子部分的这一部分一切正常但不幸的是,由于图像位于应该显示它的正方形前面,所以没有多大用处。

我对此很陌生,所以如果有人能对此有所了解(或者甚至更好地建议解决方案!)我将非常感激。

由于

马特

 Dim mySld As Slide
 Dim myShp As ShapeRange
 Dim i As Integer

 Set mySld = ActivePresentation.Slides.FindBySlideID(256)

 Set myShp = mySld.Shapes.Paste

    With myShp
        .Name = "Quiz_Image_" & i
        .Left = 70
        .Top = 75
        .LockAspectRatio = msoTrue
        .Width = 425
        .ZOrder msoSendToBack
    End With

If myShp.Height > 275 Then
    myShp.Height = 275
End If

1 个答案:

答案 0 :(得分:0)

是,设置ZOrder,重置触发器。我能想到的唯一选择(除非其他人指出更好的解决方案)是使用.AnimationSettings从自己的代码启动动画。例如

Option Explicit

Sub Sample()
    Dim mySld As Slide
    Dim myShp As ShapeRange
    Dim i As Integer

    Set mySld = ActivePresentation.Slides(1)

    Set myShp = mySld.Shapes.Paste

    With myShp
        .Name = "Quiz_Image_" & i
        .Left = 70
        .Top = 75
        .LockAspectRatio = msoTrue
        .Width = 425
        .ZOrder msoSendToBack
    End With

    If myShp.Height > 275 Then
        myShp.Height = 275
    End If

    mySld.Shapes("Shape Name").AnimationSettings.Animate
End Sub

修改

另见这个有趣的read