PowerpointVBAでスライドの画像と線の全削除を実現したい。
PowerpointVBAで下記のコードを作成しました。目的はPowerpointスライドの画像全削除と線の全削除です。
下記のコードの画像全削除と線の全削除のどちらかをコメントアウトすると、コメントアウトされていない方の削除は機能しますが、両方を活かすと、両方とも機能しません。
おそらく、s.Type にスライド1ページ分のshapeオブジェクトコレクションが入っているため、例えば、s.Type に入っている画像オブジェクトを削除すると、同じページの線オブジェクトも一緒にs.Type から消えてしまうため、線が削除できないのではないかと推定しています。
Powerpointスライドの画像全削除と線の全削除を下記のコードで実現するには、どうコードを修正すれば良いか、
わかる方、御指南をお願いします。
---<Start of Code>-----
Sub delete()
Dim s As Shape 'sはshapeオブジェクトを入れる変数
Dim c As Collection 'cはコレクション
Dim start_slide As Integer 'start_slideはスライド番号を入れる変数
start_slide = 1
For i = start_slide To ActivePresentation.Slides.Count
'If i = 254 Then
' GoTo continue
'End If
Set c = New Collection
For Each s In ActivePresentation.Slides(i).Shapes '変数sにアクティブスライド番号のすべてのshapeオブジェクトを入れる。
c.Add s
Next
'画像は全削除
If s.Type = msoPicture Then
s.delete
End If
'線は全削除
If s.Type = msoLine Then
s.delete
End If
Next
'continue:
Next
'MsgBox "the process is finished."
End Sub
---<End of Code>-----