_基本関数・メソッド

図形を削除する【Shapes.Deleteメソッド】【For Each】【ExcelVBA】

Shapes.Deleteメソッド

図形(オートシェイプ)を削除するには、Shapes.Deleteメソッド を使用します。
図形のインデックス番号、または図形の名前を指定することが可能です。

構文
Object.Delete

ObjectShapeオブジェクトを表す変数です。

 

For Each を使う

For Each を使って図形を削除することもできます。

For Each Shapeオブジェクト In ActiveSheet.Shapes
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

 

注意点

  • 上記を実行する前にシート内に図形をいくつか用意しておくとわかりやすいです。

 

関連記事

コメント

タイトルとURLをコピーしました