図形を多く使うタイミングが、時折やってきます。
ただ、セルだけをコピーしたいのに、図形まで一緒についてきてしまうこともあります。
図形はまとめて選択がしづらいため、サッと消せるVBAをもっておくと効率的です。
▼関連記事

※こんな図形も消せます
Contents
VBAの基本
VBAの基礎的な内容はこちらでまとめています。
必要に応じてご参照ください。
▼関連記事
すぐ使いたい方はこちら
使用するコードはこのような形です。
VBE画面に貼り付けていただければ、すぐに使えます。
※マクロで削除した図形は、通常の操作のように「元に戻す」ができないためご注意ください。
必要に応じて、ファイルを保存してから実行してください。
コードはこちら
Sub 選択範囲にかかる図形を削除()
Dim shp As Shape
Dim rng As Range
Dim i As Long
' 1. 選択されているのがセル(Range)であることを確認
If TypeName(Selection) <> "Range" Then
MsgBox "セルを選択してから実行してください。", vbExclamation
Exit Sub
End If
Set rng = Selection
' 2. Shapesを後ろからループ(削除時のインデックスずれ防止)
' ※ActiveSheet.Shapes.Count から 1 まで逆順に回す
For i = ActiveSheet.Shapes.Count To 1 Step -1
Set shp = ActiveSheet.Shapes(i)
' 図形と選択範囲が少しでも重なっているか判定
' 重なり判定:(図形の右 > 範囲の左) かつ (図形の左 < 範囲の右) ...
If shp.Left + shp.Width > rng.Left And _
shp.Left < rng.Left + rng.Width And _
shp.Top + shp.Height > rng.Top And _
shp.Top < rng.Top + rng.Height Then
shp.Delete
End If
Next i
End Sub
以前、YouTubeでも解説しました。
使い方の実例などは、こちらも参考にしていただければ。
▼ショートカットキーの管理方法
やりたいことを見つけるのが重要
さて、今回の図形削除VBAですが、ゼロから書いたわけではありません。
図形削除のVBAを作成したいと思い立ち、ChatGPTに聞きながら作ったものです。
こうしたことも、漫然と過ごしているだけだと、なかなか思い浮かばないものです。
- 少し手間がかかる
- ショートカットできないか
- めんどくさい
このようなセリフが浮かんだときは効率化のチャンスです。
見逃さないようにしていきましょう。
では、また次回。
編集後記
◇日記
昨日はオフ。
午前中は息子と公園でサッカーなど。
次男が発熱し39℃超…。
早く治るといいのですが…。
◇ブログネタ経緯
Excelを眺めていて浮かんだネタ。
◇1日1新
美容室開業&理容室開業の攻略メソッド~独立・開業・出店のための参考書~