A little trip down Boolean lane.

When you are checking a Boolean value:
Dim Cond1 As Boolean

To check if the Boolean is True:
If Cond1 Then
That's it.  No = True or = True = True
To check if the Boolean is False:
If Not Cond1 Then

sure, If Cond1 = True Then
is fine, but it's a little redundant.
The If statement has to check
False = True, which is False if Cond1 is False and
True = True, which is True if Cond1 is True.

Short Circuit Boolean Evaluation in VB.

What is Short Circuit Boolean Evaluation?
If you had an If statement like this:

If R >= 0 And Boxes(R) = 1 Then
a short circuit evaluation of this condition (R >= 0 And Boxes(R) = 1)
would first evaluate R >= 0.  Iff this R >= 0 is true, then Boxes(R) = 1 will be evaluated.  In other words, Boxes(R) = 1 is not evaluated if R < 0... which is useful, since elements less than 0 probably don't exist in an array anyway.
To do a Short circuit evaluation 'And':
If R >= 0 Then
  If Boxes(R) = 1 Then

To do a Short circuit evaluation 'Or' (where the second condition is checked only if the first condition is False) on a statement like
If R = 0 Or S = R Then
cond1 = False
If R = 0 Then
  cond1 = True
ElseIf S = R Then
  cond1 = True
End If
If cond1 Then

Substantially more messy, but it works.  It'd probably be simpler to convert the Or expression into an And expression.

Inverting Your Variable Checks
Not (A = B) <=> A <> B
Not (A < B) <=> A >= B
Not (A > B) <=> A <= B
Not (A <= B) <=> A > B
Not (A >= B) <=> A < B
Not (A <> B) <=> A = B
Not (A Is B) does not invert, and there is no keyword yet in VB
that does the opposite.
A IsNot B does not exist.
There's also no But logical operator.

P.S. (May 20 2004 112:12) The IsNot keyword has been added to VB.NET 2005