Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
vba创建始终保持在顶部的形状_Vba_Powerpoint_Z Order - Fatal编程技术网

vba创建始终保持在顶部的形状

vba创建始终保持在顶部的形状,vba,powerpoint,z-order,Vba,Powerpoint,Z Order,是否可以使用始终位于顶部的vba在powerpoint中创建形状?我尝试查看shapes(x).zOrder的选项。我选择msoBringToFront,但当我创建另一个形状时,新形状就是位于顶部的形状 我检查有powerpoint的事件,但创建形状时没有事件。。。仅当创建幻灯片时。还有别的办法吗 关于我的评论,您可以尝试以下方式: 1) 创建一个类并添加以下示例代码 Private WithEvents mApplication As Application Private mMyShape

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


我检查有powerpoint的事件,但创建形状时没有事件。。。仅当创建幻灯片时。还有别的办法吗

关于我的评论,您可以尝试以下方式:

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中添加。这里使用的事件将在每次更改选择时触发,因此应确保您的形状几乎一直在前面

事件参考:
Windows选择更改:

有关事件列表,请参阅<代码>后牵引降滑应适当。如果
WindowSelectionChange
失败,显然是回退选项。有关Ppt 2007等效活动,请参见。2007年没有类似于AfterDragDropOnSlide的版本。请参阅下面发布的示例。我的建议有帮助吗?若否,原因为何?你能解决这个问题吗?