以下命令立即从演示文稿中删除一组幻灯片:
ActivePresentation.Slides.Range(Array(1, 5, 69, 70.....)).delete
但是,在继续删除之前,如何将特定幻灯片添加到数组中(如果幻灯片满足某些条件)?
以下命令立即从演示文稿中删除一组幻灯片:
ActivePresentation.Slides.Range(Array(1, 5, 69, 70.....)).delete
但是,在继续删除之前,如何将特定幻灯片添加到数组中(如果幻灯片满足某些条件)?
根据 MSDN,发送到 Range 函数的参数可以是整数索引、字符串幻灯片名称或整数和字符串数组。如果您希望使用 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