【タイトル】
マクロで記録したソート
 「マクロの記録」で「Sort」(並べ替え)を記録すると、次のようなマクロが記録されます。
 
 
 
Sub Sort()
'
' Sort Macro
'
  ActiveWorkbook.Worksheets("Sheet").Sort.SortFields.Clear
  ActiveWorkbook.Worksheets("Sheet").Sort.SortFields.Add2 Key:=Range("A2:A22") _
    , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
  With ActiveWorkbook.Worksheets("Sheet").Sort
    .SetRange Range("A1:O22")
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlStroke
    .Apply
  End With
End Sub
 
【説明】
 「With ActiveWorkbook」の前は、「SortFields」即ち「ソートの方法」の設定です。
 1行目:直前に実行した設定「SortFields」をクリア。
 2・3行目:ソートの設定。
 4行目以下:「With」「End With」を使って「Sort」の詳細を設定。
 
【改良】
 「マクロの記録」では、処理対象が記録したそのシートに限定される。
 ブック内のすべてのシートで使えるようにするには   ActiveWorkbook.Worksheets("Sheet") → Activesheet に変更する。
 「SortFields」も「With」「End With」を使って記述することができる。
Sub Sort()
'
' Sort Macro
'
  Activesheet.Sort.SortFields.Clear
  With Activesheet.Sort.SortFields.Add2 _
    .Key:=Range("A2:A22") _
    .SortOn:=xlSortOnValues _
    .Order:=xlAscending _
    .DataOption:=xlSortNormal
  End With
  With Activesheet.Sort
    .SetRange Range("A1:O22")
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlStroke
    .Apply
  End With
End Sub
 
【参照】
 なお、以前のソートは、下記のようになっていた。
Sub SortData()
'
' SortData Macro
' データを並べかえる
' マクロ記録日 : 1999/11/22 ユーザー名 : 杉本敏宏
'
' Keyboard Shortcut: Ctrl+l
'
  Application.OnKey "+^L", "ソート"
  Range("A1").Select
  Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:= _
    xlYes, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    SortMethod:=xlPinYin
End Sub