Sponsored Links
こんにちは!Lenocoです。本日も見てくださりありがとうございます。
今回は図形削除のマクロです!
Sponsored Links
Contents
シート上の図形をすべて削除するマクロ
図形の操作ってなんかややこしいんですよね、、
ただ!図形の削除に関しては割とシンプルでわかりやすいです。
3種類紹介します!
コード①図形を全選択して削除
Sub DeleteAllShapes1()
ActiveSheet.Shapes.SelectAll
Selection.ShapeRange.Delete
End Sub
コードの説明
アクティブシート(選択されているシート)上のすべての図形を選択し、
選択されている図形を削除します。
コード②「For Each」を使って削除
Sub DeleteAllShapes2()
Dim s As Shape
For Each s In ActiveSheet.Shapes
s.Delete
Next s
End Sub
コードの説明
Shape型の変数を宣言します。
シート上の図形を順にループしていき、図形を削除します。
コード③「Shapes.Count」を使って削除
Sub DeleteAllShapes3()
Dim i As Long
For i = ActiveSheet.Shapes.Count To 1 Step -1
ActiveSheet.Shapes(i).Delete
Next
End Sub
コードの説明
カウンタ用の変数を宣言します。
シート上の図形を後ろから順にループしていき、図形を削除します。
「For i = 1 To ActiveSheet.Shapes.Count」
としても一見うまくいきそうですが、
図形が削除されると番号がずれてしまい、中途半端に削除される上に
「指定したコレクションに対するインデックスが境界を超えています」というエラーがでます!
さいごに
いかがでしたでしょうか。
ただ図形を全削除するのであれば①のやり方が良いと思います。
②と③は、IF文を追加して条件を付けられるので、この条件に当てはまる図形のみ削除、
というふうに制御をかけられます。
ぜひ使ってみてください!
Lenoco
Sponsored Links