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 など型を指定した方が速度が上がります。
すでに昇順に並んでいる配列を渡せば降順に並び替えられます。
スポンサーリンク