No1です。とりあえず参考までに(最低限の指定)
2007より前のバージョンで実行する可能性がある場合は以下のコードで(2016は不明)
With Sheets("Sheet1")
'↓もしくは.Range("A3:C11").Sort
.Range("A3").Sort _
Key1:=.Range("A3"), Order1:=xlAscending, _
Key2:=.Range("B3"), Order2:=xlAscending, _
Key3:=.Range("C3"), Order3:=xlAscending, _
Header:=xlNo
End With
2007以降だとこちらでも(2016は不明)
With Sheets("Sheet1").Sort.SortFields
.Clear
.Add Key:=Range("A3"), Order:=xlAscending
.Add Key:=Range("B3"), Order:=xlAscending
.Add Key:=Range("C3"), Order:=xlAscending
End With
With Sheets("Sheet1").Sort
.SetRange Range("A3:C11")
.Header = xlNo
.Apply
End With
なお、最終行が不特定な場合は(A列の最終行を求める場合)
Dim MyLastRow As Long
MyLastRow = Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row
上記を最初に追加して
.SetRange Range("A3:C11")
を
.SetRange Range(Cells(3, "A"), Cells(MyLastRow, "C"))
に変更してください。