プロが教えるわが家の防犯対策術!

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

A 回答 (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を対象とされるからです。
    • good
    • 1
この回答へのお礼

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

お礼日時:2006/07/27 16:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A