並び替えsort関数、2007以降と2003まで

sort関数の使用例を比較します。まずは、2007年以降は、以下。

Sub 並び替え2007以降()
    Dim ws As Worksheet
    
    Set ws = Worksheets("Sheet1")
    
    With ws.Sort
        .SortFields.Clear        ' 既存の条件をクリア
        .SortFields.Add2 _
            Key:=Range("A2"), _
            SortOn:=xlSortOnValues, _
            Order:=xlAscending, _
            DataOption:=xlSortNormal
        ' Add2:条件追加、Add2は複数可能
        ' Key:この例では、A列が基準で並び替え。行はどこでもOK。
        ' SortOn:並び替えのタイプ、データ(xlSortOnValues)
        '        ・背景色(xlSortOnCellColor)・文字色(xlSortOnFontColor)・アイコン(xlSortOnIcon)
        ' Order:昇順(xlAscending) ・降順(xlDescending)
        ' DataOption:文字列を文字(xlSortNormal)or数値(xlSortTextAsNumbers)
    
        .SetRange ws.UsedRange          ' 並び替えの範囲。この例では、使用されているセル範囲
        .Header = xlYes                 ' タイトル行の有(xlYes)無(xlNo),自動判定(xlGuess)。
        .MatchCase = False              ' 大文字と小文字の区別の有(True)無(False)。
        .Orientation = xlTopToBottom    ' 並び変える方向、行(xlTopToBottom)列(xlLeftToRight)。
        .SortMethod = xlPinYin          ' 日本語を、ふりがな(xlPinYin) or 文字コード(xlStroke)で並び替える。
        .Apply                          ' 並び替えを実行
    End With
End Sub

この例では、シート「Sheet1」の使用している範囲を、A列を基準に、並び替えします。

次に、2003までは、以下です。

Sub 並び替え2003まで()

    ' セルA1を含む表全体を、B列を基準に並び替え
    Range("A1").Sort _
        Key1:=Range("B1"), _
        Order1:=xlAscending, _
        Header:=xlYes
    ' Key1:この例では、B列が基準で並び替え。行はどこでもOK。
    ' Order1:昇順(xlAscending) ・降順(xlDescending)
    ' Header:タイトル行の有(xlYes)無(xlNo),自動判定(xlGuess)
        
End Sub

この例では、B列を基準に並び替えをします。

複数基準の並び替えの例は、以下を参考にしてください。

Follow me!