「excelマクロ rectangle まとめて消す」
という検索キーワードに気付きました。
ワークシート上の四角形(rectangle)を、まとめて削除するExcelマクロを探していた方による検索です。
For Each~Nextループを回して全Rectangleを削除するサンプルマクロ
まずは基本的なSubプロシージャをご紹介します。
Dim shp As Shape
For Each shp In ActiveSheet.Shapes
If shp.AutoShapeType = msoShapeRectangle Then
shp.Delete
End If
Next
End Sub
上記のSubプロシージャを実行すると、アクティブシート上の全四角形が削除されます。
アクティブシート上の全図形に対してFor Each~Nextループを回して、
For Each shp In ActiveSheet.Shapes
ShapeオブジェクトのAutoShapeTypeプロパティを調べて、四角形(msoShapeRectangle )だったときに、
If shp.AutoShapeType = msoShapeRectangle Then
ShapeオブジェクトのDeleteメソッドで削除しています。
shp.Delete
Rectanglesを使って全Rectangleを削除するサンプルマクロ
レガシーオブジェクトの一種であるRectanglesコレクションオブジェクトを使った、以下のような裏技的なSubプロシージャでも、アクティブシート上の全Rectangleを削除できます。
ActiveSheet.Rectangles.Delete
End Sub
オブジェクトブラウザー上では非表示となっている、RectanglesコレクションオブジェクトのDeleteメソッドを使って一括削除を行っています。
「ActiveSheet.Rectangles.Select」というコードで、アクティブシート上の全Rectangleを選択できるのと考え方は同じです。
最終更新日時:2022-10-01 15:38
- Newer:VBAで軸ラベル・軸タイトルを設定する
- Older:Find・FindNextでみつかった行番号を配列に
Home » エクセルマクロ・Excel VBAの使い方 » DrawingObjects » 全Rectangleを削除する