2014-01-28 111 views
1

我有一個子導入圖像,並將它放在一個正方形後面,然後單擊時消失(點擊消失動畫時觸發)。使用VBA更改z命令殺死動畫觸發器(powerpoint)

但我運行子觸發器停止工作。經過大量搜索之後,我發現它是由改變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 

回答

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

+0

這就是真正有用的。謝謝你這麼快速的回答,並且很有魅力。唯一的問題(請不要覺得你必須回答 - 你已經非常有幫助)是,實際上有20個方格動畫。有沒有辦法做.Shapes版本([我剛剛點擊的那個])。AminationSettings.Animate?很明顯,我可以爲每一個單獨編寫一個子文件,但看起來相當優雅! –

+0

你可以'.Selection.ShapeRange(1)'來獲得當前的形狀。您可能也想看到[THIS](http://msdn.microsoft.com/en-us/library/office/ff745871.aspx)。 –

+0

非常感謝您提供的所有幫助 - 花了好幾個小時纔得到這麼多,我認爲它可能都被浪費了。 –