Shapes.Deleteメソッド
図形(オートシェイプ)を削除するには、Shapes.Deleteメソッド を使用します。
図形のインデックス番号、または図形の名前を指定することが可能です。
構文
Object.Delete
| Object | Shapeオブジェクトを表す変数です。 |
For Each を使う
For Each を使って図形を削除することもできます。
For Each Shapeオブジェクト In ActiveSheet.Shapes
If 条件 Then
Shapeオブジェクト.Delete
End If
Next
If 条件 Then
Shapeオブジェクト.Delete
End If
Next
このようにIfで条件を指定することができるので、柔軟な対応が可能です。
※Ifを省くと、全ての図形を削除することができます。
図形を選択するサンプルコード
Public Sub Sample() '■単体の図形を削除する ActiveSheet.Shapes(1).Delete '■全ての図形を削除する '一括選択をして削除 ActiveSheet.Shapes.SelectAll Selection.ShapeRange.Delete 'ひとつずつループして削除 Dim shp As Shape For Each shp In ActiveSheet.Shapes shp.Delete Next End Sub
削除の条件を指定する場合
Public Sub Sample2()
'■円のみを削除する
Dim shp As Shape
For Each shp In Activesheet.Shapes
If shp.Type = msoAutoShape Then
'図形が円のときの処理
If shp.AutoShapeType = msoShapeOval Then
shp.Delete '図形を削除
End If
End If
Next shp
End Sub
注意点
- 上記を実行する前にシート内に図形をいくつか用意しておくとわかりやすいです。
コメント