構文
構文は以下の通りです。
Key2:=Range("キー2の範囲"), Order2:=xlDescending, _
Key3:=Range("キー3の範囲"), Order3:=xlDescending, _
Header:=xlYes
解説
Range("範囲")は、並べ替えを行いたいセルの範囲を指定します。Key1は、第一の並べ替えキーを指定します。これは最も重要な基準となる列の範囲です。Order1は、Key1で指定した列の並べ替え順を指定します。xlAscendingは昇順、xlDescendingは降順です。Key2は、第二の並べ替えキーを指定します。Key1で同じ値が存在する場合、次にこのキーが使用されます。Order2は、Key2で指定した列の並べ替え順を指定します。Key3は、第三の並べ替えキーを指定します。Key2で同じ値が存在する場合、次にこのキーが使用されます。Order3は、Key3で指定した列の並べ替え順を指定します。Headerは、範囲内に見出しがある場合、xlYesを指定します。見出しがない場合はxlNoを指定します。
引数 | 内容 |
Key1, Key2, Key3 | ソートのキーとなる範囲を指定します。複数のキーを指定することも可能です。 |
Order1, Order2, Order3 | 各キーに対するソートの順序を指定します。xlAscending(昇順)またはxlDescending(降順)を指定します。 |
Header | ソート範囲にヘッダーがある場合、xlYesと指定します。ヘッダーがない場合はxlNoと指定します。 |
プログラミング例
具体的なプログラミング例を紹介します。
' 並べ替え範囲を指定
Range("A1:C10").Sort Key1:=Range("A1:A10"), Order1:=xlAscending, _
Key2:=Range("B1:B10"), Order2:=xlDescending, _
Header:=xlYes
End Sub
上記のプログラムは、セル範囲A1:C10を並べ替えます。まず、A列(Key1)を昇順(小さい順)で並べ替え、その後にB列(Key2)を降順(大きい順)で並べ替えます。ヘッダー行があるため、Header:=xlYesが指定されています。
まとめ
Sortを使用して、セル範囲を複数のキーで並べ替えることができます。Key1で指定した列が最優先の並べ替え基準となり、Key2はKey1で並べ替えた結果同じ値があった場合に使用されます。Key3はKey2で並べ替えた結果同じ値があった場合に使用されます。並べ替え順はxlAscendingで昇順、xlDescendingで降順を指定できます。