1. I added CODE tags to you post - use the [#] icon to add then
2. Interesting. Deleting 'bottoms up' is still required, and I added the ability to handle a single level of grouped items
3. I learned that if you delete all but one shape in a Group, then it becomes a 'regular' shape
Option Explicit
Sub delete_pics()
Dim osld As Slide
Dim oshp As Shape, oshp2 As Shape
Dim iShp As Long, ishp2 As Long
For Each osld In ActivePresentation.Slides
For iShp = osld.Shapes.Count To 1 Step -1
Set oshp = osld.Shapes(iShp)
Select Case osld.Shapes(iShp).Type
Case msoPlaceholder
If oshp.PlaceholderFormat.ContainedType = msoPicture Then oshp.Delete
Case msoPicture
oshp.Delete
Case msoGroup
For ishp2 = oshp.GroupItems.Count To 2 Step -1
Set oshp2 = oshp.GroupItems(ishp2)
Select Case oshp2.Type
Case msoPlaceholder
If oshp2.PlaceholderFormat.ContainedType = msoPicture Then oshp2.Delete
Case msoPicture
oshp2.Delete
End Select
Next ishp2
End Select
Next iShp
'second pass since if a Group has all but 1 picture deleted, it's not a group any more
For iShp = osld.Shapes.Count To 1 Step -1
Set oshp = osld.Shapes(iShp)
If oshp.Type = msoPicture Then oshp.Delete
Next iShp
Next
End Sub