指定したセル範囲内にある図形を削除するには?

Question 84.3 Excel VBA Borad (掲示板)より Previous Next
ある領域に描かれた図形を選択して、消したいのですが、どうすればよいでしょう。
エクセルで図形を選択するときに、範囲内にある図形を選択させる作業をVBAでやりたいのです。 マクロで記録させると図形のナンバーで記録されてしまいます。
セルの範囲でも結構ですし、x,yの位置指定でも結構です。
Answer   2001.9.5 うな
とりあえずサンプルです。実際に利用するにはカスタマイズが必要ですね。(^-^)
Sub test()
    Dim lngLeft   As Long
    Dim lngTop    As Long
    Dim lngRight As Long
    Dim lngBottom As Long
    Dim objShape As Object

    ' セル範囲の座標取得
    With Range("A1:F20")
        lngTop = .Top
        lngLeft = .Left
        lngBottom = .Top + .Height
        lngRight = .Left + .Width
    End With
    ' アクティブシートの図形列挙
    For Each objShape In ActiveSheet.DrawingObjects
        ' 範囲内にあるかチェック
        With objShape
            If lngTop <= .Top And lngLeft <= .Left And _
               lngBottom >= .Top + .Height And lngRight >= .Left + .Width Then
                ' 範囲内にあれば削除
                .Delete
            End If
        End With
    Next
End Sub
ありがとうございました
早々の回答、ありがとうございました。 サンプルの動作確認をして希望するものであることを確認しました。
For Each objShape In ActiveSheet.DrawingObjects
next
を使う知恵と.Topなどのプロパティの知識がありませんでした。自分の目的にカスタマイズします。

 

Excel VBA Macro