再びトーナメント表作成 ➈-3 特定名簿からの作成

特定名簿からのトーナメント作成ツールを、少しずつ紹介中。
本日も、昨日の続きから。

昨日と同様の標準モジュールに、 以下を追加する。

' トーナメントの対戦順に並び替えられた配列に、その他の基本情報を付加して新たな配列を返す。
' source_array:トーナメント対戦表。
' match_type:形または組手の区分。
Function TournamentArray(source_array As Variant, match_type As MatchType) As Variant
    Dim i As Long
    ' データ格納用配列。
    Dim arr() As Variant
    ReDim arr(1 To UBound(source_array), 1 To 列名.[_eLast] - 3)
    
    ' No.は、キー情報。通し番号または各団体の登録番号などを想定。
        For i = 1 To UBound(source_array)
            arr(i, 1) = source_array(i)
            For Each p In Persons
                If source_array(i) = p.No Then
                    arr(i, 列名.en名前) = p.名前
                    arr(i, 列名.enふりがな) = p.ふりがな
                    arr(i, 列名.en性別) = p.性別
                    arr(i, 列名.en学校等区分) = p.学校等区分
                    arr(i, 列名.en学年) = p.学年
                    arr(i, 列名.en所属) = p.所属
                    Select Case match_type
                        Case MatchType.en形
                            arr(i, 列名.en形出場) = p.形出場
                            arr(i, 列名.en前回形順位) = p.前回形順位
                        Case MatchType.en組手
                            arr(i, 列名.en形出場) = p.組手出場
                            arr(i, 列名.en前回形順位) = p.前回組手順位
                    End Select
                End If
            Next
        Next
        
        TournamentArray = arr
End Function

少し短いが、しばらく毎日更新も目標の一つのため、今日はここまで。

参考まで。