我对这一切都有点新意,让我自己有一个项目,并想知道我是否能得到一点指导。
我会为你设置场景。我有一个功率点它有3层图片,它们都是卡片。背面层是我的占位符只是随机和价值的随机卡。第二层是一层Ace,最后一层是卡背。 我有20套这3张图片我设置了一个很好的小旋转过渡,所以你点击它们旋转的卡片的触发器,他们的ace将每次出现,因为它在占位符之前。
这个想法是我有一个宏,这是我的重置,它会使用ZOrder msoSendToBack将它们全部推到后面。
第二个宏随后将3个aces随机地前移3次,因此它们与该层内联然后需要首先显示。现在我遇到的问题是VBA代码。
Sub Reset()
ActiveWindow.Selection.SlideRange.Shapes("Picture29").Select
ActiveWindow.Selection.ShapeRange.ZOrder msoSendToBack
End Sub
这是我通过一般查找找到的代码。
我很感激任何指导或建议,我意识到我可能会以更难的方式这样做。我只是一名软件工程专业的学生,所以我对此很新。但是我对C#或Java更强。但老实说,任何事情都会被贬低。
答案 0 :(得分:0)
首先,避免选择任何东西,除非它完全不可避免。 这将产生同样的效果:
Sub Reset()
With ActiveWindow.Selection.SlideRange.Shapes("Picture29")
.ZOrder msoSendToBack
End With
End Sub
由于你必须处理多个形状,我倾向于使用标签。 例如,选择一个形状,然后运行:
Sub BackLayer() 使用ActiveWindow.Selection.ShapeRange(1) .Tags.Add“Layer”,“Back” 结束 结束子
对每个后面的图层项执行此操作,然后类似地识别其他图层形状。然后在使用中,[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