二次元配列を一次元配列へ変換 

二次元配列を一次元配列へ変換する version1.0

二次元配列の指定した列を1次元配列に変換して返す。
セルから二次元配列を作成した場合、最初のインデックスは1になるが、一元配列では最初の添え字が0になる。
ここで取得した配列に引数の2次元配列と同じインデックスでアクセスすると1のずれにより不具合に繋がるので要注意。
1周目から要素数に+1をすることはできないため、処理を分けている。第二引数は二次元配列の2次元目添え字を表す数字を渡すこと。
2dや1dの「d」は「dimension」の「d」。「次元」の意。

'二次元配列を特定の列(2次元目の配列)で一次元配列に変換する
Function convertArrayFrom2dTo1d(srcArray As Variant, argCol As Integer)
    
    Dim returnArray As Variant
    For i = LBound(srcArray) To UBound(srcArray)
    
        If i = LBound(srcArray) Then
            ReDim returnArray(0)
            returnArray(0) = srcArray(i, argCol)
        Else
            '配列の要素数を1増やす
            ReDim Preserve returnArray(UBound(returnArray) + 1)
            '増やした要素に値を格納する
            returnArray(UBound(returnArray)) = srcArray(i, argCol)
        End If
        
    Next
    
    convertArrayFrom2dTo1d = returnArray
 
End Function


コメント