【VBA】データを並び替える
VBAでデータを並び替えるときはRangeのSortメソッドを使います。
Range.Sort メソッド (Excel)
sortという名前のシートにHeader1からHeader2にデータが入力されてます。
RangeのSortメソッドを使用してデータを並び替えるコードは以下になります。
1Option Explicit
2
3Sub SortValues()
4
5 Dim sht As Worksheet
6 Set sht = ThisWorkbook.Worksheets("sort")
7
8 sht.Range("A1:C4").Sort key1:=sht.Range("A1"), order1:=xlAscending, _
9 key2:=sht.Range("B1"), order2:=xlAscending, _
10 Header:=xlYes
11
12 Set sht = Nothing
13
14End Sub</pre>
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行目をデータではなくヘッダーとみなし、並び替えの対象から外します。
コードを実行するとデータの並び替えが行われます。