VBAでデータを並び替えるときはRangeのSortメソッドを使います。
Range.Sort メソッド (Excel)
sortという名前のシートにHeader1からHeader2にデータが入力されてます。
こちらのデータをHeader1を最優先キー、Header2を2番目の優先キーとして並び替えてみます。
RangeのSortメソッドを使用してデータを並び替えるコードは以下になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Option Explicit Sub SortValues() Dim sht As Worksheet Set sht = ThisWorkbook.Worksheets("sort") sht.Range("A1:C4").Sort key1:=sht.Range("A1"), order1:=xlAscending, _ key2:=sht.Range("B1"), order2:=xlAscending, _ Header:=xlYes Set sht = Nothing End Sub |
sht.Range(“A1:C4”).Sortの”A1:C4″でデータを並び替える範囲を設定します。
key1でA列を並び替えの最優先キーに指定します。
order1をxlAscendingに設定し、数値の小さい順に並び替えます。
数値の大きい順(降順)で並び替えたい場合は、order1にxlDescendingを指定します。
key2でB列を並び替えの2番目に優先するキーに指定します。
order2をxlAscendingに設定し、アルファベット順(A→Z)に並び替えます。
Z→Aの順(降順)で並び替えたい場合は、order2にxlDescendingを指定します。
HeaderにxlYesを設定して、1行目をデータではなくヘッダーとみなし、並び替えの対象から外します。
コードを実行するとデータの並び替えが行われます。
コメント