【VBA】表データをソートする

前提

ソート対象の表データは以下。

サンプルプログラムの概要

・ソートキーとしてセル「B2」~「D2」を指定
・昇順(xlAscending)でソート

サンプルプログラム

'変数の宣言を必須
Option Explicit

Sub sort()

    Dim ws As Worksheet
    Dim targetRange As Range
    
    Set ws = Worksheets("サンプルシート")
    
    'ソート範囲を取得
    Set targetRange = ws.Range("B2").CurrentRegion
    
    'ソートの設定をクリアとソートキーの設定
    '┗ソートキーとしてセル「B2」~「D2」を指定
    '┗昇順(xlAscending)でソート
    With ws
        .sort.SortFields.Clear
        .sort.SortFields.Add2 Key:=Range("B2"), Order:=xlAscending
        .sort.SortFields.Add2 Key:=Range("C2"), Order:=xlAscending
        .sort.SortFields.Add2 Key:=Range("D2"), Order:=xlAscending
    End With
    
    'ソート実行
    With ws.sort
        .SetRange targetRange
        .Header = xlYes
        .Apply
    End With

End Sub

実行結果

ソートされた。


タイトルとURLをコピーしました