|
【タイトル】 |
マクロで記録したソート |
「マクロの記録」で「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
|
|
|
|