是否可以使用始终位于顶部的vba在powerpoint中创建一个形状?我试着看看形状(x).zOrder的选项。我选择了msoBringToFront但是当我创建另一个形状时,新形状就是顶部的形状。
我检查具有powerpoint的事件但是在创建形状时没有事件...仅在创建幻灯片时。还有其他方法吗?
答案 0 :(得分:0)
根据我的评论,您可以尝试以下内容:
1)创建一个类并添加以下示例代码
Private WithEvents mApplication As Application
Private mMyShape As Shape
Public Property Set Application(App As Application)
Set mApplication = App
End Property
'and Getter if necessary
Public Property Set MyShape(shp As Shape)
Set mMyShape = shp
End Property
'and Getter if necessary
Private Sub mApplication_WindowSelectionChange(ByVal Sel As Selection)
mMyShape.ZOrder msoBringToFront
End Sub
2)创建一个标准模块并添加以下示例代码。
Sub blah()
Dim c1 As Class1
Set c1 = New Class1
Set c1.Application = Application
Set c1.MyShape = 'your shape
End Sub
以上适用于Powerpoint 2007以上版本。 AfterDragDropOnSlide
事件可能更合适,但仅在Powerpoint 2013中添加。此处使用的事件将在每次更改选项时触发,因此应确保您的形状几乎始终在前面。
活动参考: WindowSelectionChange:http://msdn.microsoft.com/en-us/library/bb231084%28v=office.12%29.aspx