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 など型を指定した方が速度が上がります。

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