Try this. The Array uses numbers to represent the teams...but when you display it you could reference it with another array or database to display names.
(I haven't actually tested it myself, but I think it should just about work)
Public Type Game
GameNo As Integer
Team1 As Integer
Team2 As Integer
end type
Dim Games() As Game
dim i as integer
ReDim Games((totalTeams - 1)! - 1)
For i = 1 To (totalTeams - 1)!
With Games(i-1)
.GameNo = i
If i >= (totalteams - 1)!
exit for
else
'Cycle Team1: 1,2,3,4,5; 1,2,3,4,5 etc
.Team1 = i - (totalteams * int(i / totalteams))
'Cycle Team2 differently:
'5,1,2,3,4; 4,5,1,2,3; 3,4,5,1,2; etc
'Team2 = Team1 + 1 + LoopNo <-starts at zero
.team2 = i - (totalteams * int(i / totalteams)) +1 + int(i / totalteams)
end if
end with
next i