【VBA】データを並び替える

VBAでデータを並び替えるときはRangeのSortメソッドを使います。
Range.Sort メソッド (Excel)

sortという名前のシートにHeader1からHeader2にデータが入力されてます。

こちらのデータをHeader1を最優先キー、Header2を2番目の優先キーとして並び替えてみます。

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行目をデータではなくヘッダーとみなし、並び替えの対象から外します。

コードを実行するとデータの並び替えが行われます。

関連ページ