【VBA】図形削除マクロの作り方~指定範囲内の図形だけを削除する方法~
図形を削除する処理を自動化したい。範囲を指定して全ての図形を削除したい。
こんな要望にお応えします。
この記事では、
指定範囲内の図形だけを削除するVBAのコードの解説、コピペして使えるサンプルコード
を紹介しています。
エクセル業務で図形の編集処理に手間がかかっている!という方は是非参考にしてみてください。
指定範囲の図形だけを削除するVBA
指定範囲の図形だけを削除するVBAの概要がこちら

ガッツポーズの人
作り方
指定範囲の図形だけを削除するVBAには以下のVBAが設定されています。
・図形を削除するVBA
図形(Shapes)を削除(.Delete)
・範囲を指定するVBA
Intersectメソッド(2つのセル範囲の中から重なったセル範囲を取得する)
・全ての図形を選択するVBA
For Each ~ Next(繰り返し処理)
これらのVBAを組み合わせることで指定範囲の図形だけを削除する処理が可能となります。
指定範囲の図形だけを削除するVBAのサンプルコード
Sub セルを指定()
Dim myShape As Shape
Dim myRange As Range
'A1セルからJ10セルの範囲の図形を削除する
Set myRange = ActiveSheet.Range(ActiveSheet.Cells(1, 1), ActiveSheet.Cells(10, 10))
For Each myShape In ActiveSheet.Shapes
If Not (Intersect(ActiveSheet.Range(myShape.TopLeftCell, myShape.BottomRightCell), myRange) Is Nothing) Then
myShape.Delete
End If
Next
End Sub
- 5行目で、図形の削除範囲を指定(サンプルではA1セルからJ10セルの範囲)
- 6行目と9行目で、繰り返しで図形を選択する
- 7行目から8行目で、指定範囲に図形があったとき削除する
5行目の指定範囲を編集するだけで削除する範囲を変更することができます。
このサンプルVBAは、
いろんなVBAに応用できるほど使い勝手がいいコード
なのでコピペして使い回してください。
導入方法
1.VBA編集画面を開く
2.Module1を作成
3.Module1にVBAを入力
コードを上記で紹介している「指定範囲の図形だけを削除するVBAのサンプルコード」をコピペして入力してください。
4.ボタンを作成
5.ボタンにマクロを登録
以上でVBAの登録は完了です。
実行結果
図形を適当に挿入
「マクロ実行」ボタンを押下すると、A1セルからJ10セル内の図形を削除することができます。
指定範囲の図形だけを削除するVBAの導入事例
実際のエクセル業務に「指定範囲の図形だけを削除するVBA」を導入した事例をご紹介します。
導入事例① 写真を貼り付けるVBA
挿入した写真データは図形(オブジェクト)として認識されるので「指定範囲の図形だけを削除するVBA」で削除することができます。
写真を貼り付けるVBAでは、
貼り付けられている写真を削除してから写真を貼り付ける
という流れでコードを設定していきます。
なので、図形(写真データ)を削除するVBAの設定が必須事項となります。
関連記事「写真をは貼り付けるVBA」では、
ダイアログでフォルダを指定し、フォルダ内の写真データをまとめて貼り付けるマクロをダウンロード
することができます。
導入事例② 文字を丸で囲むVBA
「文字を〇で囲む」、「テキストに取り消し線を表示する」このような処理を自動化するVBAは
表示されている図形(丸や直線)を削除してから新しい図形を表示する
という流れでコードを設定していきます。
写真を貼り付けるVBA同様に、図形(丸や直線)を削除するVBAの設定が必須事項となります。
関連記事「テキストの転記、図形の挿入を自動化するVBA」では、
上図で紹介されている「条件によって図形を操作するVBA」が設定されてあエクセルファイルをダウンロード
することができます。
VBAでエクセル業務の効率化を実現
VBAを活用することで、エクセルでの日常業務を劇的に効率化できます。
VBAを使えば、
繰り返し作業の自動化によって人的ミスを削減し、作業時間を大幅に短縮する
ことが可能です。
毎日行っているデータ集計やレポート作成を自動化すれば、数時間かかっていた作業がボタン一つで数分で完了します。
エクセル作業が多い環境ではVBAの導入は必須事項である!といっても過言ではありません。
マクロを導入するメリット
マクロを導入する最大のメリットは、作業時間の短縮と品質の向上を同時に実現できることです。
人間が時間をかけて行う単純作業をコンピュータが正確かつ高速に処理することができます。
たとえば、手作業で1時間かかっていたデータ整理が、マクロなら数秒で完了し、さらに計算ミスや入力間違いも完全に防げます。
また、一度作成したマクロは何度でも使い回せるため、長期的な業務効率化投資としても非常に価値があります。
結果として、マクロ導入は時間コストの削減と業務品質の向上という二重のメリットをもたらします。
VBA学習の始め方
VBA学習の最も効果的な始め方は、実際の業務課題から出発することです。
目的が明確な学習は記憶定着率が高く、モチベーションも維持しやすいのは間違いありません。
たとえば、毎週行っているデータ集計作業を自動化することを目標に設定し、必要な機能から順番に覚えていけば実践的なスキルがすぐに身につきます。
基本的な変数の使い方から始まり、ループ処理、条件分岐、配列など、段階的にレベルアップしていくことで、確実にVBAをマスターできます。
関連記事「VBA初心者必見!マクロの作り方」では、コードを書く画面の開き方や書いたコードの実行方法が図やサンプルコードを使って紹介されています。
マクロの開発を外注依頼する
業務内容に合わせた効率化マクロを導入したいけど、VBAコードを開発する時間がない。。。どうやってプログラムを組めばいいかわからない。。。
このような方は、マクロ開発を外注に依頼しちゃいましょう。
外注依頼することで本業に集中しながら高品質なマクロを即座に導入することができます。
ちなみに、マメBlogでもエクセルマクロ開発代行サービスを承っています。
開発内容の確認、VBAコードの設定、動作確認後の調整、など全ての工程を私(マメ父ちゃん)が行っているので、
費用が安い!スピード納期!!
でやらせてもらっています。
ほとんど独学で身に付けたVBAスキルなので、内容によっては開発できないこともあるのでご了承ください。
ご相談、見積もり依頼は完全無料ですので気になる方は下記のリンクよりお問合せ下さい。
効率化マクロを導入してエクセル業務の効率をアップさせましょう。