スポンサーリンク

【VBA】Sortで降順に並び替える方法

前回は 昇順(小さい順・あいうえお順) の並び替えを解説しました。
今回は逆に 降順(大きい順・わおえうい順) に並び替える方法を紹介します。


スポンサーリンク

1. 降順に並び替える基本構文

VBAで降順に並び替えるには、Order1:=xlDescending を指定します。

Range("並び替え範囲").Sort _
    Key1:=Range("基準列"), _
    Order1:=xlDescending, _
    Header:=xlYes
  • Order1:=xlDescending
    降順(大きい順・アルファベット逆順)

スポンサーリンク

2. 実用例:売上金額を降順に並び替える

以下のようなデータを「売上金額(B列)」で降順に並び替える例です。

商品名売上金額
りんご300
みかん120
バナナ500
ぶどう250

VBAコード

Sub 売上降順に並び替え()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    
    '売上金額を基準に降順ソート
    ws.Range("A1:B5").Sort _
        Key1:=ws.Range("B2"), _
        Order1:=xlDescending, _
        Header:=xlYes
End Sub

スポンサーリンク

3. コード解説

  1. Range("A1:B5")
    データ全体(見出しを含む範囲)を指定しています。
  2. Key1:=ws.Range("B2")
    並び替え基準は「B列(売上金額)」です。
  3. Order1:=xlDescending
    降順(大きい順)に並び替える指定です。
  4. Header:=xlYes
    先頭行(A1:B1)を見出しと認識させ、並び替え対象から除外します。

スポンサーリンク

4. 実行結果

商品名売上金額
バナナ500
りんご300
ぶどう250
みかん120

売上金額が大きい順に並び替えられました。


5. 補足:文字データを降順に並び替えた場合

例えば「商品名(A列)」で降順に並べると、アルファベットや五十音の逆順になります。

ws.Range("A1:B5").Sort _
    Key1:=ws.Range("A2"), _
    Order1:=xlDescending, _
    Header:=xlYes

この場合、文字列は「わ行 → あ行」の順に並びます。


6. まとめ

  • 降順ソートは Order1:=xlDescending を指定するだけ
  • 数値なら「大きい順」、文字なら「逆順」で並び替え可能
  • Header の指定を忘れずに!

この降順の使い方を覚えると、ランキング表や上位データの抽出に便利です。

コメント

タイトルとURLをコピーしました