VBAの配列を逆順に並べ替え

配列を逆から参照すると可読性が落ちる

配列を利用する際に、配列の逆から参照したい場合があります。

以下は逆順から参照するコード例です。

このように、逆順に参照した場合はループカウンタの初期値に最大値を設定して、カウンタが-1減るコードになるため、ソースコードの可読性がどうしても落ちてしまいます。

また、For Each文は逆順では使えません。

過去に、通常ループと逆順ループが混在しているソースを見たことがありますが、フラグやインデックス変数が乱立してもうわけわかりませんでした。

こういう場合は通常の順番のループに統一した方がよいでしょうね。

配列を逆順に並べ替え

以下のコードは配列の順番を反転させて逆順になるようにします。

一応Option Base 1の場合の対応としてLBound関数を利用していますが、そうでない場合は12行目をiStart = 0としても問題ありません。


以下がテストコードです。
配列が0から4まで順に設定されていますが、Reverse関数で反転します。

実行結果
4
3
2
1
0

関連記事

サブコンテンツ

このページの先頭へ