Try changing the line to
'do they touch
If Abs(S1.Bottom - S2.Top) <= 0.5 Or Abs(S1.Top - S2.Bottom) <= 0.5 Or Abs(S1.Left - S2.Right) <= 0.5 Or Abs(S1.Right - S2.Left) <= 0.5 Then
ShapesOverlap = True
Exit Function
End If
to define 'touching' as 'close enough'
