HOME > 即効テクニック > Excel VBA > 関数関連のテクニック > 配列のデータを並べ替える

配列のデータを並べ替える|Excel VBA

関数関連のテクニック

配列のデータを並べ替える

(Excel 2007/2010/2013)

配列のデータを並べ替えるには、クイックソートやバブルソートなど、いろいろなアルゴリズムがありますが、Excelのマクロで並べ替える場合は、配列内のデータをいったんワークシートに展開して、Excelの並べ替え機能を使うという手があります。

もし、配列内のデータが数値だった場合、さらに簡単な方法があります。
ワークシート関数の、SMALL関数やLARGE関数を使う方法です。
次のマクロは、配列orgArrayの数値データを昇順に並べ替えて、配列srtArrayに格納します。

Sub Sample()
    Dim orgArray(9) As Long
    Dim srtArray(9) As Long
    Dim i As Long
    
    Randomize
    For i = 0 To 9       '乱数をセットする
        orgArray(i) = Int(Rnd * 1000 + 1)
    Next i
    
    For i = 0 To 9       '昇順で並べ替える
        srtArray(i) = WorksheetFunction.Small(orgArray, i + 1)
    Next i

    For i = 0 To 9       '結果を表示する
        Debug.Print srtArray(i)
    Next i
End Sub