メインコンテンツへスキップ
【VBA】データを並び替える

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

·2 分
Programming VBA
かずさプログラマー
著者
かずさプログラマー
業務の作業自動化を行っています。Go、VBA、Pythonを主に使用しています。過去にはC#、VB.Net、JavaScriptも使用していました。

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

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

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

関連記事

【VBA】Shell関数を使用してフォルダを開く
·2 分
Programming VBA
【VBA】フォルダを操作する
·3 分
Programming VBA
VBAでファイルパスを取得する
··3 分
Programming VBA