0
的一個PowerPoint陣列下面的命令刪除一次的從一個演示幻燈片的數組:特定的幻燈片添加到幻燈片
ActivePresentation.Slides.Range(Array(1, 5, 69, 70.....)).delete
但我怎麼添加特定的幻燈片的數組(如果該幻燈片相遇一些條件)在進行刪除之前?
的一個PowerPoint陣列下面的命令刪除一次的從一個演示幻燈片的數組:特定的幻燈片添加到幻燈片
ActivePresentation.Slides.Range(Array(1, 5, 69, 70.....)).delete
但我怎麼添加特定的幻燈片的數組(如果該幻燈片相遇一些條件)在進行刪除之前?
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
兩種解決方案都perfect.Thanks – user1236600
如果解決方案是爲你工作,隨時爲[接受我的答案](http://meta.stackexchange.com/a/5235);) – Blackhawk