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

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

  • 目次
    • 配列を反転する
  • 他の
  • 基礎
  • 使い方
  • 基礎
  • ステートメント
  • データ型
  • エラー
  • 技術
  • 関数
  • よく使う関数
  • 数値関数
  • 文字列関数
  • 日付と時刻関数
  • データ型関数
  • 配列関数
  • エラー関数
  • ファイル関数
  • その他の関数
  • セル
  • セルの値
  • 書式設定
  • セルの操作
  • ワークシート
  • ワークブック
  • ファイル
  • ファイル
  • フォルダ
  • パス