サイトについて      連絡先   検索

VBA 配列の並びを反転させる

はじめに

Excel VBA 配列の並びを反転させる方法を紹介します。

配列の順序を逆にしたり、昇順に並んでいるのを降順にできます。

配列を反転する

順序を反転させる Reverse 関数を作成します。


Sub Reverse(ByRef data As Variant)

    Dim low As Long
    low = LBound(data)
    Dim high As Long
    high = UBound(data)
    
    Dim temp() As Variant
    ReDim Preserve temp(low To high)
    
    Dim count As Long
    count = (high - low) + 1
    
    Dim i As Long
    For i = 0 To count - 1
        temp(low + i) = data(high - i)
    Next
    For i = 0 To count - 1
        data(low + i) = temp(low + i)
    Next

End Sub

使い方


Dim data As Variant
data = Array(0, 2, 4, 6, 8)
Call Reverse(data)
' 8 6 4 2 0

どの型にも対応するために Variant 型を使用していますが、Integer や Long など型を指定した方が速度が上がります。

すでに昇順に並んでいる配列を渡せば降順に並び替えられます。

関連ページ