2013-10-30 137 views
0

的一個PowerPoint陣列下面的命令刪除一次的從一個演示幻燈片的數組:特定的幻燈片添加到幻燈片

ActivePresentation.Slides.Range(Array(1, 5, 69, 70.....)).delete 

但我怎麼添加特定的幻燈片的數組(如果該幻燈片相遇一些條件)在進行刪除之前?

回答

2

According to MSDN,發送到範圍功能的參數可以是一個整數指數,一個字符串幻燈片名稱,或整數和字符串的數組。如果您希望使用SlideRange執行您刪除,你可以先定義數組,添加任何幻燈片你想通過名稱或索引號,然後裝入SlideRange並執行刪除:

Public Sub Test() 
    Dim arrSlides() As Variant 
    arrSlides = Array(1, 2, 69, 70) 

    'Put this next part in a loop to continue adding more slides 
    ReDim Preserve arrSlides(UBound(arrSlides) + 1) 
    arrSlides(4) = 83 ' or "Name Of Slide" 

    Application.ActivePresentation.Slides.Range(arrSlides).Delete 
End Sub 

另一種解決方案

如果你的目標是刪除符合特定條件的幻燈片,它可能更容易只是通過他們所有的迭代,並刪除它們。通過這種方式,您可以更自由地測試每個幻燈片的特定屬性。

Public Sub Test() 
    Dim tempSlide As Slide 
    For Each tempSlide In Application.ActivePresentation.Slides 
     If tempSlide.Shapes.Count > 3 Then 'Or whatever your condition actually is 
      tempSlide.Delete 
     End If 
    Next 
End Sub 
+0

兩種解決方案都perfect.Thanks – user1236600

+0

如果解決方案是爲你工作,隨時爲[接受我的答案](http://meta.stackexchange.com/a/5235);) – Blackhawk