Excel

【Excel】VBAマクロで図形削除(範囲指定、すべて、一括、選択したセル内の図形や画像など)【Delete, InputBox, Intersect】

当サイトでは記事内に広告を含みます

この記事では、ExcelのVBAマクロを使用して、図形や画像を削除する方法について詳しく解説していきます。

ポイントとしては、`Delete`メソッド、`InputBox`関数、`Intersect`関数を使用することです。

なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名(あなた自身が名付けていい場所)を少々変わった名称にしております。

そのため、あなた自身がご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。

それでは詳しく見ていきましょう!

VBAマクロで選択した範囲内の図形、画像を全て削除する方法【特定範囲を選択しておく】【Delete, Intersect]

それではまず、特定範囲を選択しておく方法(アクティブセル)で図形や画像を一気に消す方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub KakuteiHaniSakujo()
    Dim hensuu As Range
    Set hensuu = Intersect(ActiveSheet.Shapes.Range, Selection)
    If Not hensuu Is Nothing Then
        hensuu.Delete
    End If
End Sub

コードのAlt+F8を押し、マクロ選択画面でKakuteiHaniSakujo関数を実行します。

このコードでは、選択された範囲内の図形や画像を削除するための方法を示しています。

具体的には、`Intersect`関数を使用して、アクティブシート上の図形や画像と選択された範囲との交差部分を特定し、その部分に存在する図形や画像を`Delete`メソッドで削除しています。

VBAマクロで選択した範囲内の図形、画像を全て削除する方法【ダイヤログで範囲の先頭と最終の列と行を指定】【InputBox, Delete]

続いては、ダイヤログで範囲の先頭と最終の列と行を指定する方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub DialogHaniSakujo()
    Dim retuHajime As String
    Dim retuOwari As String
    Dim gyouHajime As String
    Dim gyouOwari As String
    Dim sakujoHani As Range

    retuHajime = InputBox("削除したい範囲の先頭列を入力してください。")
    gyouHajime = InputBox("削除したい範囲の先頭行を入力してください。")
    retuOwari = InputBox("削除したい範囲の最終列を入力してください。")
    gyouOwari = InputBox("削除したい範囲の最終行を入力してください。")
    
    Set sakujoHani = Range(retuHajime & gyouHajime & ":" & retuOwari & gyouOwari)
    sakujoHani.Delete
End Sub

コードのAlt+F8を押し、マクロ選択画面でDialogHaniSakujo関数を実行します。

このコードでは、ダイアログを使用して削除したい範囲の先頭と最終の列と行をユーザーから取得し、その範囲内の図形や画像を削除する方法を示しています。

具体的には、`InputBox`関数を使用してユーザーから情報を取得し、その情報を基に`Range`オブジェクトを作成して、`Delete`メソッドで図形や画像を削除しています。

VBAマクロですべての図形、画像を一括削除する方法【アクティブシート内】【Delete]

続いては、アクティブシート内のすべての図形、画像を一括削除する方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub ZenbuSakujo()
    Dim kakou As Shape
    For Each kakou In ActiveSheet.Shapes
        kakou.Delete
    Next kakou
End Sub

コードのAlt+F8を押し、マクロ選択画面でZenbuSakujo関数を実行します。

このコードでは、アクティブシート内のすべての図形や画像を一括で削除する方法を示しています。具体的には、`Shapes`コレクションを使用してアクティブシート上のすべての図形を一括削除させています。

 

まとめ