2017-09-26 144 views
0

我正在尋找寫一個通用PowerPoint宏以將特定形狀組合在一起。問題是我不知道具體的形狀名稱,因爲我的幻燈片每次都會變化很小。這是我的情況:我有一個PowerPoint形狀的集合,其名稱以前綴「rc」開頭。例如,它們可以是「rc48」,「rc49」,「rc50」,「rc51」。它們總是以增加的數字順序,並且在幻燈片上只有「rc」命名的形狀。遵循這些形狀,我收集了帶有前綴「tx」的形狀(它們不是幻燈片中唯一的「tx」形狀,但它們總是遵循「rc」形狀),並且始終存在相等數量的「tx」 「跟隨」rc「對象的對象。所以在這個例子中我會有「tx52」,「tx53」,「tx54」,「tx55」。廣義形狀分組宏宏VBA PowerPoint

我想要做的是將這些對象組合在一起。所以group1會是(「rc48」,「tx52」)。 group2將是(「rc49」,「tx53」)等等。

我對VBA中的編碼知之甚少,但我在其他編程語言中的方法是在順序形狀名稱向量中查找「rc」形狀的位置,然後計算經過「rc」的長度(rcshapes_vector)找到我需要的「tx」形狀,然後遍歷這些對。

我意識到這是一個複雜的問題,但任何幫助將不勝感激。

回答

0

在PowerPoint中VBA代碼工作真的是痛苦的,因爲你沒有很多的功能,如Excel VBA,但我希望下面的想法可以幫助你:

您可以驗證形狀的類型像If oShp.Type = msoTextBox ThenIf oShp.Type = msoPicture Then

同樣對於每個形狀,您可以驗證頂部或左側屬性以查找幻燈片中的位置。 如果你確定你的形狀有這些名字,也許你可以試試:

Dim oShp As Shape 
For Each oShp In ActivePresentation.Slides(SldNumber).Shapes 
    If oShp.Name = "rc49" Then 
     Do Something 
    End If 
next