【问题标题】:vba create a shape that remains always on topvba 创建一个始终位于顶部的形状
【发布时间】:2014-05-17 01:29:12
【问题描述】:

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

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

【问题讨论】:

标签: vba powerpoint z-order


【解决方案1】:

除了我的评论,您可以尝试以下操作:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-23
    相关资源
    最近更新 更多