Dim shp2 As shape
...
cache1.caption = ""
For Each shp2 In Shapes.Range
If InStr(1, shp2.Name, "chao") Then
con4 = Shapes("a").Left + Shapes("a").Width > shp2.Left Or Shapes("a").Left + 2 < shp2.Left + shp2.Width _
Or Shapes("a").Top + Shapes("a").Height - 2 > shp2.Top Or Shapes("a").Top + 2 < shp2.Top + shp2.Height
If con4 = False Then
cache1.Caption = cache1.Caption & vbNewLine & shp2.Name
End If
End If
Next
(this is inside a loop)
was to, when the right part of the right part of the shapes ("a") was touching a shape that contains the word chao in the name (shp2), the name of that shape (shp2) would go to cache1.caption
it just IGNORES that part code, and cache1.caption is blank for always