VBAでデータを並び替えるときはRange
のSort
を使います。
Range.Sort メソッド (Excel) | Microsoft Learn
sortという名前のシートにHeader1からHeader2にデータが入力されてます。
こちらのデータをHeader1を最優先キー、Header2を2番目の優先キーとして並び替えてみます。
Range
のSort
を使用してデータを並び替えるコードは以下になります。
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行目をデータではなくヘッダーとみなし、並び替えの対象から外します。
コードを実行するとデータの並び替えが行われます。