- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:特定の名前のオートシェイプの有無を知りたい(エクセルVBA))
Excel VBAで、特定の名前のオートシェイプの有無を確認する方法
このQ&Aのポイント
- Excel VBAにおいて、特定の名前のオートシェイプが存在するかどうかを確認する方法を知りたいです。オートシェイプを削除したり再作成する際に、エラーを回避するために、名前の存在を事前にチェックしたいです。
- Excel VBAで特定のオートシェイプが存在するかどうかを確認する方法を教えてください。オートシェイプを削除したり、同じ名前で作成する際に、エラーハンドリングを行う前に事前にオートシェイプの存在を確認したいです。
- Excel VBAで、特定の名前のオートシェイプが存在するかどうかを確認する方法を教えてください。オートシェイプが存在しない場合にエラーを回避するために、事前に名前の存在をチェックしたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Dim objShp As Shape For Each objShp In ActiveSheet.Shapes If objShp.Name = "TestShape1" Then 処理Y '該当オートシェイプありの場合の処理 Else 処理N '該当オートシェイプなしの場合の処理 End If Next
その他の回答 (1)
- wuyan
- ベストアンサー率51% (183/352)
回答No.2
先の回答は間違いでした。 (Dim 行はそのまま) 該当オートシェイプありで処理したい場合 For Each objShp In ActiveSheet.Shapes If objShp.Name = "TestShape1" Then 処理 '該当オートシェイプありの場合の処理 End If Next ---- 該当オートシェイプなしで処理したい場合はたとえば(必要に応じて工夫してください) For Each objShp In ActiveSheet.Shapes If objShp.Name = "TestShape1" Then MsgBox "該当オートシェイプあり" Exit Sub 'あればマクロを終了 End If Next 処理 '該当オートシェイプなしの場合の処理 ----
質問者
お礼
重ねてありがとうございます。助かりました。
お礼
結局、いちいち名前を確認してやるしかないのですかね。 オートシェイプの数も少ないので、これでやることにします。 ありがとうございました。