The loop number gives access to a variant of entities,
for example a circle as a single entity or 4 lines making a rectangle, the latter is the reason why you need a variant for each loop.
Sub Hatch()
Dim h As AcadHatch
Dim i As Integer, Cnt As Integer
Dim j As Integer, Clr As Integer
Dim Ents(), oLoops
Set h = EntSel
Cnt = h.numberOfLoops
ReDim Ents(Cnt)
For i = 0 To Cnt - 1
h.GetLoopAt i, oLoops
Ents(i) = oLoops
Next i
For i = 0 To Cnt - 1
oLoops = Ents(i)
For j = 0 To UBound(oLoops)
oLoops(j).Color = Clr
Clr = Clr + 1
Next j
Next i
End Sub