← コード一覧へ戻る
実務検索・集計

表を金額の大きい順に並べ替える

A列からC列の表を、C列の金額が大きい順に並べ替えます。

実行前に確認

  • 1行目が見出し、C列が数値の表で使います。A:Cだけを並べ替えるため、D列以降に同じ行の関連データがある場合は対象範囲を広げてください。
  • 元の順序は通常の[元に戻す]では復元できません。事前にブックをコピーしてください。

1サンプルコード

Sub 金額順に並べ替える()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("Sheet1")
    Dim lastRow As Long

    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

    If lastRow < 2 Then Exit Sub
    If MsgBox("Sheet1のA1:C" & lastRow & "を変更しますか?", vbYesNo + vbExclamation + vbDefaultButton2) <> vbYes Then Exit Sub
    ws.Range("A1:C" & lastRow).Sort _
        Key1:=ws.Range("C2"), _
        Order1:=xlDescending, _
        Header:=xlYes
End Sub
表で見る処理のイメージ実行前・実行後のセルを見比べる

確認で「はい」を選ぶと、C列の金額が大きい順に行を並べ替えます。

A・B・Cは列、1・2・3は行です。例えば「B2」はB列の2行目のセルです。この表は説明用のサンプルです。

実行前

Sheet1

実行前のサンプル。列記号と行番号でセルの位置を確認できます。
ABC
1商品数量金額
2りんご3300
3みかん4600
4ぶどう1450

実行後

Sheet1

実行後のサンプル。列記号と行番号でセルの位置を確認できます。
ABC
1商品数量金額
2みかん4600(注目セル)
3ぶどう1450(注目セル)
4りんご3300(注目セル)

色付きは注目する場所です。「—」は未入力、「(空文字)」は数式などが返す空の文字列を表します。

A5以降は未入力。見出しの1行目は固定で、A:Cのデータが行単位で移動します。 強調は注目するセルの目印です。実際のセルの色・書式を再現するものではありません。

使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
  1. 1

    Windows版のデスクトップExcelで練習用ブックを.xlsm形式で保存します。Alt+F11→[挿入]→[標準モジュール]に、この例だけを貼り付けます。

  2. 2

    Sheet1のA1:C最終行に練習用の表を用意します。1行目は見出し、C列は数値の金額にします。関連データがD列以降にもある場合は、先にコードの対象範囲を広げます。

  3. 3

    実行するSubの内側にカーソルを置き、F5キーを押します。 確認画面の対象範囲が正しい場合だけ[はい]を押します。

  4. 4

    1行目を残し、対象の各レコードがC列の金額の大きい順に並びます。[いいえ]なら順序は変わりません。

使っている機能の公式ドキュメント(Microsoft Learn)