- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:セル範囲と図形を指定してVBAで削除するには?)
セル範囲と図形を指定してVBAで削除する方法
このQ&Aのポイント
- エクセルで一枚のシートに複数のオートシェイプ(○、△、□)を使用したものがあります。オートシェイプを使用しているセルの範囲は(A1:G20)と(AP1:AX20)の二箇所なのですが、VBAで(A1:G20)の範囲にあるオートシェイプ(○のみ)を削除する事はできますか?
- 手動で、オブジェクトの選択で範囲指定をした後削除という方法もあるのですが、この削除の作業の前後に他のVBAを使用しているので、VBAで削除が出来ればと思います。
- いろいろ検索したのですが、セル範囲もしくは図形のいずれかを指定して削除する方法はあったのですが、両方を指定してのVBAがわかりませんでした。
- みんなの回答 (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 みたいな。 #ご利用のエクセルのバージョンが不明のご相談ですが、マクロで図形等を扱う場合、エクセルのバージョンに応じて書き振りを変える必要がある場合があります。ご相談投稿では、普段あなたがご利用のソフトのバージョンまでキチンと明記することを憶えて下さい。
お礼
回答ありがとうございます! EXCEL2013で試したところ、望んでいた通りになりました! 質問が初めてだったため、エクセルのバージョンを 明記するマナーを知らず申し訳ありませんでした。 またお世話になることがありましたら、 きちんとバージョン等明記したいと思います。