| 
    
     |  | ならば単に Select しなければ良いだけのことではないでしょーか ? 図形に限らずオブジェクトを Select したり Active しないと出来ない
 処理は殆ど無いのです。ま、今回のケースは
 >各図形については1つずつ処理が必要
 ということで「コメントを除いた全ての図形」を対象にできればいい
 のだから・・
 
 Sub Obj_Name()
 Dim Obj As DrawingObject
 
 For Each Obj In ActiveSheet.DrawingObjects
 Debug.Print Obj.Name & " : " & TypeName(Obj)
 Next
 End Sub
 
 と、DrawingObjectsコレクションオブジェクトをループするコードが、
 適当かと思います。いちおう、Shapesコレクションをループするなら、
 上にも書いたように、Select をしないで
 
 Sub Obj_Name2()
 Dim Obj As Shape
 
 For Each Obj In ActiveSheet.Shapes
 If Obj.Name Like "Comment*" Then
 Else
 Debug.Print Obj.Name
 End If
 Next
 End Sub
 
 というコードで試してみて下さい。
 
 
 |  |