図形(オートシェイプ)とコネクタを使って図を描いていると、コネクタだけをまとめて削除したいということが、時々発生します。
そんなときに使えるPowerPointマクロを作ったのでご紹介しておきます。
アクティブスライド上の全コネクタを削除するサンプルマクロ
以下のようなマクロで、アクティブなスライド上のコネクタをすべて削除できます。
Dim i As Long With ActiveWindow.Selection.SlideRange.Shapes
For i = .Count To 1 Step -1
If .Item(i).Connector Then
.Item(i).Delete
End If
Next i
End With
End Sub
アクティブなスライド上の全ShapeにFor~Nextループを後ろから回して、
With ActiveWindow.Selection.SlideRange.Shapes
For i = .Count To 1 Step -1
Shapeがコネクタだったときに、
If .Item(i).Connector Then
削除を行っています。
.Item(i).Delete
ShapeオブジェクトのConnectorプロパティで、コネクタかどうかを判定できます。
コネクタかどうかを判定するプロパティですから、IsConnectorといった名前のほうが良かったんじゃないかという気もしますが...
選択範囲内のコネクタだけを削除するサンプルマクロ
以下のようなマクロにすれば、選択範囲内のコネクタだけを削除できます。
Dim i As Long With ActiveWindow.Selection.ShapeRange
For i = .Count To 1 Step -1
If .Item(i).Connector Then
.Item(i).Delete
End If
Next i
End With
End Sub
For~Nextループを回す対象が、アクティブスライド上の全コネクタを削除するマクロでは、
With ActiveWindow.Selection.SlideRange.Shapes
となっていましたが、選択範囲内のコネクタを削除するマクロでは、
With ActiveWindow.Selection.ShapeRange
となっているところだけが異なっています。
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Shapesコレクション・Shapeオブジェクト » コネクタを削除するPowerPointマクロ