このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

VBAで図形を削除する方法

2023年4月14日

VBAの図って、セル(Range)と比べると扱い方が難しいですよね。

そんな扱いづらい図ですが、操作方法は限られているのでコードを数パターン覚えておけば後は応用が利きます。(基本的にShapesコレクションからShapeオブジェクトを取り出す)

今回は図を削除する方法を紹介します。

VBAが難しいと感じたら
自分で作るのが難しいと感じたらご相談ください。
ココナラにて、VBAの作成を受け付けています。
ご相談はこちらから

全ての図を削除する方法

Sub AllShpDelete()
'ActiveSheet上の図を全て削除
    Dim oneShp As Variant
    For Each oneShp In ActiveSheet.Shapes
        oneShp.Delete
    Next
End Sub

まずはActiveSheet上の全ての図を削除する方法です。

Shapeコレクション(ActiveSheet.Shapes)から1つの図(oneShp)を取り出して、それを順番に削除(Delete)します。

特定の図のみ削除する方法

Sub SomeShpDelete()
'ActiveSheet上のテキストボックスを全て削除
    Dim oneShp As Variant
    For Each oneShp In ActiveSheet.Shapes
        If oneShp.Type = msoTextBox Then oneShp.Delete
    Next
End Sub

さらにTypeプロパティを組み合わせることで、特定の図のみを削除することができます。
上のプログラムではテキストボックスのみを削除します。

msoTextBoxのところを他の定数に差し替えることで、削除する図の種類を指定することができるので、自分が消したい図に応じて変更してみてください。

定数種類
msoShapeTypeMixed-2
msoAutoShape図形・オートシェイプ1
msoCallout吹き出し2
msoChartグラフ3
msoCommentコメント4
msoFreeformフリーフォーム5
msoGroupグループ化された図形6
msoEmbeddedOLEObject埋め込みOLEオブジェクト7
msoFormControlフォームコントロール8
msoLine9
msoLinkedOLEObjectリンクOLEオブジェクト10
msoLinkedPictureリンク画像11
msoOLEControlObjectActiveXコントロール12
msoPicture画像13
msoPlaceholderプレースホルダー14
msoTextEffectテキスト効果15
msoMediaメディア16
msoTextBoxテキストボックス17
msoScriptAnchorスクリプトアンカー18
msoTable19
msoCanvas描画キャンバス20
msoDiagram図表21
msoInkインク22
msoInkCommentインクコメント23
msoSmartArtスマートアート24
msoSlicerスライサー25
msoWebVideoWebビデオ26
msoContentAppコンテンツアドイン27
msoGraphicグラフィック28
msoLinkedGraphicリンクグラフィック29
mso3DModel3Dモデル30
msoLinked3DModelリンク3Dモデル31
図の種類

関連記事:図形の作成方法

VBAが難しいと感じたら
自分で作るのが難しいと感じたらご相談ください。
ココナラにて、VBAの作成を受け付けています。
ご相談はこちらから

VBA

Posted by やろまい