エクセルで、次のコードは、A1セルからD50セルの範囲内にある図形を削除するマクロですが、この範囲内にテキストボックスがあったとして、
エクセルで、次のコードは、A1セルからD50セルの範囲内にある図形を削除するマクロですが、この範囲内にテキストボックスがあったとして、 そのテキストボックスだけは削除しないで残しておくというふうにはできないでしょうか。 Sub test() Dim i As Range Dim m As Variant Set i = Activesheet.Range("A1:D50") For Each m In ActiveSheet.Shapes On Error Resume Next If Not Intersect(Activesheet.Range(m.TopLeftCell, m.BottomRightCell), i) Is Nothing Then m.Delete Next Set i = Nothing End Sub 御教示の程よろしくお願い致します。
どなたかご存知の方いらっしゃいませんか?
Excel・16閲覧
ベストアンサー
Typeプロパティで判断できます。 Sub test() Dim i As Range Dim m As Shape Set i = ActiveSheet.Range("A1:D50") For Each m In ActiveSheet.Shapes On Error Resume Next If m.Type <> msoTextBox Then If Not Intersect(ActiveSheet.Range(m.TopLeftCell, m.BottomRightCell), i) Is Nothing Then m.Delete End If Next Set i = Nothing End Sub
質問者からのお礼コメント
御回答誠にありがとうございます! また一つ勉強になりました!(^^♪
お礼日時:2020/11/25 0:53