vba创造一个永远在顶部的形状

时间:2014-04-04 16:09:17

标签: vba powerpoint-vba z-order

是否可以使用始终位于顶部的vba在powerpoint中创建一个形状?我试着看看形状(x).zOrder的选项。我选择了msoBringToFront但是当我创建另一个形状时,新形状就是顶部的形状。

我检查具有powerpoint的事件但是在创建形状时没有事件...仅在创建幻灯片时。还有其他方法吗?

1 个答案:

答案 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