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

VBAでデータを並び替えるときはRangeSortを使います。

https://msdn.microsoft.com/ja-jp/vba/excel-vba/articles/range-sort-method-excel

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

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

RangeSortを使用してデータを並び替えるコードは以下になります。

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列を並び替えの最優先キーに指定します。
order1xlAscendingに設定し、数値の小さい順に並び替えます。
数値の大きい順(降順)で並び替えたい場合は、order1xlDescendingを指定します。

key2でB列を並び替えの2番目に優先するキーに指定します。
order2xlAscendingに設定し、アルファベット順(A→Z)に並び替えます。
Z→Aの順(降順)で並び替えたい場合は、order2xlDescendingを指定します。

HeaderxlYesを設定して、1行目をデータではなくヘッダーとみなし、並び替えの対象から外します。

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

Licensed under CC BY-NC-SA 4.0
最終更新 2018年7月7日 00:06
Hugo で構築されています。
テーマ StackJimmy によって設計されています。