2014-04-04 96 views
0

使用vba始終位於頂部可以在PowerPoint中創建形狀?我嘗試查看形狀(x).zOrder的選項。我選擇msoBringToFront,但是當我創建另一個形狀時,新的形狀是最上面的形狀。vba創建一個始終位於頂部的形狀

我檢查具有幻燈片的事件,但創建形狀時沒有事件......僅在創建幻燈片時纔有事件。有沒有其他方法?

+0

見http://msdn.microsoft.com/en-us/library/office/jj227644%28v=office.15%29.aspx事件的列表。 'AfterDragDropOnSlide'應該是合適的。如果失敗'WindowSelectionChange'顯然是後備選項。有關Ppt 2007等效事件,請參閱http://msdn.microsoft.com/en-us/library/bb231084%28v=office.12%29.aspx。 2007年沒有相當於AfterDragDropOnSlide。 –

+0

看到我下面發佈的示例。 –

+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

相關問題