```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
becomes:
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.