マクロの質問です。超初心者です。 W列(降順) → S列(昇順)に並び替えた後に、S列(フィルター 12または14)でX列で昇順並び替え(行全体)したいと思っています。 下記コードを試してみたのですが、W列の降順はできているのですが、S列の昇順ができていないようです。 どのようにすればよいでしょうか? Sub 複数条件で並び替え_修正版() Dim ws As Worksheet Dim lastRow As Long Dim sortRange As Range Set ws = ActiveSheet ' 最終行をW列で取得(列によって変えてOK) lastRow = ws.Cells(ws.Rows.Count, "W").End(xlUp).Row ' 並び替え対象範囲(A列~Z列) Set sortRange = ws.Range("A1:Z" & lastRow) ' フィルター解除(必要であれば) If ws.AutoFilterMode Then ws.AutoFilterMode = False ' --- Step①: W列(降順) → S列(昇順) --- With ws.Sort .SortFields.Clear .SortFields.Add2 Key:=ws.Range("W2:W" & lastRow), _ SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal .SortFields.Add2 Key:=ws.Range("S2:S" & lastRow), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal .SetRange sortRange .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With ' --- Step②: S列(フィルター 12または14) --- sortRange.AutoFilter Field:=19, Criteria1:="=12", Operator:=xlOr, Criteria2:="=14" ' --- Step③: フィルター結果を X列で昇順並び替え(行全体) --- With ws.Sort .SortFields.Clear .SortFields.Add2 Key:=ws.Range("X2:X" & lastRow), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal .SetRange sortRange .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With ' --- フィルター解除(必要に応じて) --- ws.AutoFilterMode = False End Sub