指定したセル範囲の並べ替えする方法について説明します。今回は3つのソートキーで降順に並べ替えをする方法について説明します。
例題
例題は、<実行>ボタンにVBAマクロが登録されており、ボタンをクリックする事で並べ替えを行います。内容は、A3セル~E21セルの範囲をA列に入力されている種類番号とC列に入力されている商品番号及びE列に入力されている金額で降順に並べ替えするプログラミング方法となります。並べ替えの優先順位は、種類番号>商品番号>金額とします。
[実行前]:
・A列に種類番号、B列に種類名、C列に商品番号、D列に商品名、E列に金額が入力されている。
[実行後]:
・A3セル~E21セルの範囲がA列の種類番号順>C列の商品番号順>E列の金額で降順に並べ替えされる。
プログラミング
プログラミングは以下の通りとなります。
[記述例]:
Sub サンプル()
Range("A3:E21").Sort Key1:=Range("A3"), Order1:=xlDescending, _
Key2:=Range("C3"), Order2:=xlDescending, _
Key3:=Range("E3"), Order3:=xlDescending
End Sub
今回の例題では、A3セル~E21セル範囲の並べ替えを行うため、範囲の指定にRange("A3:E21")と記述します。
並べ替えの第1条件としてA列で並べ替えを行うため、ソートキーにはKey1:=Range("A3")と記述し、並べ替えの第2条件としてC列で並べ替えを行うため、ソートキーにはKey2:=Range("C3")と記述し、並べ替えの第3条件としてE列で並べ替えを行うため、ソートキーにはKey3:=Range("E3")と記述します。
更にA列・C列・E列共に降順で並べ替えするため、Order1:=xlDescending、Order2:=xlDescending、Order3:=xlDescendingを各々記述します。
処理内容を説明すると、
「A3セル~E21セルの範囲をA列を第1キー・C列を第2キー・E列を第3キーとして降順に並べ替えします。」
との意味になります。
※上記の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。また、ボタンにプログラムを割り当てるにはこちらを参考にして下さい。
ダウンロード
上記サンプルプログラムを使用したい場合は、こちらからダウンロードして下さい。