簡體   English   中英

Powerpoint 2016 VBA圖片

[英]Powerpoint 2016 VBA Pictures

我對這一切都有點新意,讓我自己有一個項目,並想知道我是否能得到一點指導。

我會為你設置場景。 我有一個功率點它有3層圖片,它們都是卡片。 背面層是我的占位符只是隨機和價值的隨機卡。 第二層是一層Ace,最后一層是卡背。 我有20套這3張圖片我設置了一個很好的小旋轉過渡,所以你點擊它們旋轉的卡片的觸發器,他們ace將每次出現,因為它在占位符之前。

這個想法是我有1個宏,這是我的重置,它會使用ZOrder msoSendToBack將它們全部推到后面。

然后需要首先顯示第二個宏,然后將3個aces隨機地前移3次以使它們與該層內聯。 現在我面臨的問題是VBA代碼。

Sub Reset()
     ActiveWindow.Selection.SlideRange.Shapes("Picture29").Select
     ActiveWindow.Selection.ShapeRange.ZOrder msoSendToBack
End Sub

這是我通過一般查找找到的代碼。

我會很感激任何指導或建議,我意識到我可能會以更難的方式這樣做。 我只是一名軟件工程專業的學生,​​所以我對此很新。 但是我對C#或Java更強。 但老實說,任何東西都會被貶低。

首先,避免選擇ANYTHING,除非它完全不可避免。 這將產生同樣的效果:

Sub Reset()
     With ActiveWindow.Selection.SlideRange.Shapes("Picture29")
        .ZOrder msoSendToBack
     End With
End Sub

由於你必須處理多個形狀,我傾向於使用標簽。 例如,選擇一個形狀,然后運行:

Sub BackLayer()With ActiveWindow.Selection.ShapeRange(1).Tags.Add“Layer”,“Back”End with End Sub

對每個背圖層項執行此操作,然后類似地標識其他圖層形狀。 然后在使用中,[aircode alert!]

Sub Reset()
   Dim oSh as Shape
   For Each oSh in ActiveWindow.Selection.SlideRange(1)
      If oSh.Tags("Layer") = "Back" Then
         oSh.Zorder msoSendToBack
      End If
      ' Add further IF tests to identify other layers
      ' and deal with them appropriately
   Next
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM