Give this a shot. I used fanpages' testing sub from the other question and it all matches:

```
Function F(xi As Double, x1 As Double, x2 As Double, x3 As Double, x4 As Double, _
yi As Double, y1 As Double, y2 As Double, y3 As Double, y4 As Double) As Long
If (Abs(xi - x1) < Abs(0.00001 * xi) And Abs(yi - y1) < Abs(0.00001 * yi)) Or _
(Abs(xi - x2) < Abs(0.00001 * xi) And Abs(yi - y2) < Abs(0.00001 * yi)) Then
F = 1
ElseIf (Abs(x1 - x2) < (0.0000001 * x1) And (yi - y1) * (yi - y2) < 0) Or _
((xi - x1) * (xi - x2) < 0) Then
F = 2
Else
Exit Function
End If
If Not (Abs(xi - x3) < Abs(0.00001 * xi) And Abs(yi - y3) < Abs(0.00001 * yi)) And _
Not (Abs(xi - x4) < Abs(0.00001 * xi) And Abs(yi - y4) < Abs(0.00001 * yi)) Then
If Abs(x3 - x4) < Abs(0.000001 * yi) And Not ((yi - y3) * (yi - y4) < 0) Then Exit Function
If Not (Abs(x3 - x4) < Abs(0.000001 * yi)) And Not ((xi - x3) * (xi - x4) < 0) Then Exit Function
End If
F = 1
End Function
```

Matt