O.K., Don't worry Mike, your problem is not difficult, so I can tell you

decision without any joking!

First : you need Type (but not necessary ) -

Type Point

X As Double

Y As Double

End Type

Then : you need Function -

Function IsCross(p1 as Point, p2 as Point ,q1 as Point, q2 as Point) as

Boolean

Dim Kp as Double,Kq as Double

Dim CrossX as Double

Dim T as Double

On Error GoTo L1

Kp=(p2.X-p1.X)/(p2.Y-p1.Y)

Kq=(q2.X-q1.X)/(q2.Y-q1.Y)

CrossX=(p1.X*Kp-q1.X*Kq+q1.Y-p1.Y)/(Kp-Kq)

if p2.X<p1.X then

T=p2.X

p2.X=p1.X

p1.X=T

End If

IsCross = ((CrossX > p1.X) AND (CrossX < p2.X))

ExitL: Exit Function

L1: on error goto 0

IsCross = False

GoTo ExitL

End Function

Second : I think your polygon is presented by points

Pt(1)->Pt(2)->->Pt(NPts)=Pt(1)

and your point is MyPt (there I mean you define structure {.x,.y })

So, the main Code is

Dim I as Integer,J as Integer

Dim Answer as Boolean 'this is the answer

For I=1 To NPts

For J= 1 To Npts-1

if IsCross ( MyPt,Pt(I),Pt(J),Pt(J+1)) then Exit For

Next J

if J < Npts then Exit For

Next I

Answer = (I <= Npts)

This is all! Try it !

Maybe this is not the best decision but this mast be work. If you wont a

better decision, contact us

Best Regards, Kakha Orkoshneli.