• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:特定の名前のオートシェイプの有無を知りたい(エクセルVBA))

Excel VBAで、特定の名前のオートシェイプの有無を確認する方法

このQ&Aのポイント
  • Excel VBAにおいて、特定の名前のオートシェイプが存在するかどうかを確認する方法を知りたいです。オートシェイプを削除したり再作成する際に、エラーを回避するために、名前の存在を事前にチェックしたいです。
  • Excel VBAで特定のオートシェイプが存在するかどうかを確認する方法を教えてください。オートシェイプを削除したり、同じ名前で作成する際に、エラーハンドリングを行う前に事前にオートシェイプの存在を確認したいです。
  • Excel VBAで、特定の名前のオートシェイプが存在するかどうかを確認する方法を教えてください。オートシェイプが存在しない場合にエラーを回避するために、事前に名前の存在をチェックしたいです。

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

  • ベストアンサー
  • wuyan
  • ベストアンサー率51% (183/352)
回答No.1

Dim objShp As Shape For Each objShp In ActiveSheet.Shapes If objShp.Name = "TestShape1" Then 処理Y '該当オートシェイプありの場合の処理 Else 処理N '該当オートシェイプなしの場合の処理 End If Next

greetinggreentea
質問者

お礼

結局、いちいち名前を確認してやるしかないのですかね。 オートシェイプの数も少ないので、これでやることにします。 ありがとうございました。

その他の回答 (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 処理 '該当オートシェイプなしの場合の処理 ----

greetinggreentea
質問者

お礼

重ねてありがとうございます。助かりました。