• ベストアンサー

excel/vbaにてオートシェイプに名前の定義づけ

こんにちは。教えてください。オートシェイプを描きそれに対し名前をつけました。ex)"図"と。それをコピーをすると同じ名前の図形がコピーされます。 同じ名前のついたオートシェイプに対して削除や非表示という操作をしたいです。 書き方を教えてください。 頭の中ではアクティブシートの中に名前が"図"と同じオートシェイプがあれば、そのオブジェクトを削除(非表示もしたい)しなさい。 ていうふうな書き方の感じでいいのでしょうか? VBAを勉強しはじめたばかりです。 教えてください。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 Sub ShapesDelete() Dim shp As Object 'As Shape For Each shp In ActiveSheet.Shapes  If shp.Name = "図" Then   shp.Delete '削除   'shp.Visible = False  '非表示  End If Next shp End Sub 簡単なマクロだと、上記のようなものになります。 私も、VBAを勉強し始めた段階で、オートシェイプに手を出したのですが、さっぱり分からなかったですね。なぜ、難しいかというと、記録マクロでは、オブジェクト名などが、正しく記録されないからです。常に、Selectionを対象とされるからです。

wakudo
質問者

お礼

Wendy02さんへ・・ とっとってもうれしいです!!そしてわかりやすく書いていただいてるのでいがったです。なんとお礼を述べていいか・・。 本当にド素人なので質問して回答がかえってきてもよめなかったりするのではと心配していました。 VBAの勉強をあきらめずにもう少しがんばってみたいと思いました。 ありがとうございます!!

関連するQ&A