表を金額の大きい順に並べ替える
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
| A | B | C | |
|---|---|---|---|
| 1 | 商品 | 数量 | 金額 |
| 2 | りんご | 3 | 300 |
| 3 | みかん | 4 | 600 |
| 4 | ぶどう | 1 | 450 |
実行後
Sheet1
| A | B | C | |
|---|---|---|---|
| 1 | 商品 | 数量 | 金額 |
| 2 | みかん | 4 | 600(注目セル) |
| 3 | ぶどう | 1 | 450(注目セル) |
| 4 | りんご | 3 | 300(注目セル) |
色付きは注目する場所です。「—」は未入力、「(空文字)」は数式などが返す空の文字列を表します。
A5以降は未入力。見出しの1行目は固定で、A:Cのデータが行単位で移動します。 強調は注目するセルの目印です。実際のセルの色・書式を再現するものではありません。
使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
- 1
Windows版のデスクトップExcelで練習用ブックを.xlsm形式で保存します。Alt+F11→[挿入]→[標準モジュール]に、この例だけを貼り付けます。
- 2
Sheet1のA1:C最終行に練習用の表を用意します。1行目は見出し、C列は数値の金額にします。関連データがD列以降にもある場合は、先にコードの対象範囲を広げます。
- 3
実行するSubの内側にカーソルを置き、F5キーを押します。 確認画面の対象範囲が正しい場合だけ[はい]を押します。
- 4
1行目を残し、対象の各レコードがC列の金額の大きい順に並びます。[いいえ]なら順序は変わりません。