概要
ActivePresentation のペンを一括で消したかったので作りました。
.Type = msoInkComment 判定しているとおり、該当すれば消えます。
msoInkComment は MsoShapeType という図形を表す定数です。
(ペンはグループ化されてしまうことがあり、そうなるとtypeがgroupになってしまうため、本処理の前にグループ解除が必要です)
コード
Sub EraseInk() '------------------------------------------------------------------------------ ' ペンを消す ' ※ペンは自動でグループ化されてしまうことがある。その場合は本処理の前にグループ解除が必要 '------------------------------------------------------------------------------ Dim pptPrs As Variant 'ActivePresentation Dim p As Long 'スライド用変数 Dim intShape As Long 'Shapeの番号 Dim lngFirstSlideNo As Long '開始スライド 'ActivePresentation Set pptPrs = ActivePresentation '開始スライド番号 If pptPrs.PageSetup.FirstSlideNumber = 0 Then lngFirstSlideNo = 1 Else lngFirstSlideNo = pptPrs.PageSetup.FirstSlideNumber End If '全スライドのペンを削除 For p = lngFirstSlideNo To pptPrs.Slides.Count With ActivePresentation.Slides(p).Shapes 'pは1からのみ指定可 For intShape = .Count To 1 Step -1 With .Item(intShape) Debug.Print .Type & .Name If .Type = msoInkComment Then 'msoInkComment(23) インク コメント .Delete '削除 End If End With Next intShape End With Next p End Sub