• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:セル範囲と図形を指定してVBAで削除するには?)

セル範囲と図形を指定してVBAで削除する方法

このQ&Aのポイント
  • エクセルで一枚のシートに複数のオートシェイプ(○、△、□)を使用したものがあります。オートシェイプを使用しているセルの範囲は(A1:G20)と(AP1:AX20)の二箇所なのですが、VBAで(A1:G20)の範囲にあるオートシェイプ(○のみ)を削除する事はできますか?
  • 手動で、オブジェクトの選択で範囲指定をした後削除という方法もあるのですが、この削除の作業の前後に他のVBAを使用しているので、VBAで削除が出来ればと思います。
  • いろいろ検索したのですが、セル範囲もしくは図形のいずれかを指定して削除する方法はあったのですが、両方を指定してのVBAがわかりませんでした。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

ふつーに調べて削除するだけです。 sub macro1()  dim s as shape  for each s in activesheet.shapes   if not application.intersect(s.topleftcell, range("A1:G20")) is nothing then   if s.autoshapetype = msoshapeoval then    s.delete   end if   end if  next end sub みたいな。 #ご利用のエクセルのバージョンが不明のご相談ですが、マクロで図形等を扱う場合、エクセルのバージョンに応じて書き振りを変える必要がある場合があります。ご相談投稿では、普段あなたがご利用のソフトのバージョンまでキチンと明記することを憶えて下さい。

katekin1200
質問者

お礼

回答ありがとうございます! EXCEL2013で試したところ、望んでいた通りになりました! 質問が初めてだったため、エクセルのバージョンを 明記するマナーを知らず申し訳ありませんでした。 またお世話になることがありましたら、 きちんとバージョン等明記したいと思います。

関連するQ&A

専門家に質問してみよう