| 
    
     |  | どうしても動かないし、マクロがスマートではないので、お知恵を拝借したいと思います。 
 B列からP列までデータが入っています。
 8行目が見出し
 9行目からデータが書き込まれるようになっており、データ数は常に変わります。
 まず、B1からPの最終行までのデータ範囲を選択して、その後ソートをしたいのですが、そのソートの条件が4つあります。記録式でマクロを書いて、修正をかけてみましたが、お手上げです。
 助けてください。
 ソートの優先順位は1.O列(得意先コード)、2.E列(枝番)、3.D列(オーダー)、4.B列(日付)の順です。
 記録式でやってみたのは下記のとおり、なんとかスマートになりますか。
 
 Sub ソート()
 '
 ' ソート Macro
 '
 Dim myRow1 As Long
 Dim myRow2 As Long
 Dim myStrg As String
 
 myRow1 = 8
 
 myRow2 = Cells(65536, "P").End(xlUp).Row
 
 myStrg = "B" & myRow1 & ":$P$" & myRow2
 ActiveCell = myStrg
 
 
 Selection.Sort Key1:=Range("E9"), Order1:=xlAscending, Header:=xlGuess, _
 OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
 :=xlPinYin, DataOption1:=xlSortTextAsNumbers
 Selection.Sort Key1:=Range("O9"), Order1:=xlAscending, Key2:=Range("D9") _
 , Order2:=xlAscending, Key3:=Range("B9"), Order3:=xlAscending, Header:= _
 xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
 SortMethod:=xlPinYin, DataOption1:=xlSortTextAsNumbers, DataOption2:= _
 xlSortTextAsNumbers, DataOption3:=xlSortNormal
 End Sub
 
 |  |