|
▼ねこ さん:こんにちは
レスが付かないようなので、こちらで知る限りのことを...
2007以降 のSortには
・WorksheetのSortプロパティと
・(従来からある)RangeのSortメソッド
があると思います。
マクロの記録は WorksheetのSortですね。
ただ、これは 列範囲をループするのには不適当です。
従来通りの、RangeのSortを使えばいいと思います。
ただし 2007以降のワークシートのSortでは
ユーザー設定リストの指定に
> CustomOrder:= "松山市,高松市,高知市,徳島市"
が直接使えるのですが、
RangeのSortでは OrderCustom:=13 のように
ユーザー設定リスト内にセットした "松山市,高松市,高知市,徳島市"
の番号を指定しないと動きません。
なので "松山市,高松市,高知市,徳島市" は予め マニュアルでユーザー設定
リストにセットしておいてください。
また、下の例では1行目は列見出しと仮定しています。
Sub Sort1()
Dim i As Long
Dim n As Long
Dim L As Long
L = Application.CustomListCount 'ユーザー設定リスト数
With ActiveSheet.UsedRange
n = .Columns.Count
For i = 1 To n Step 3
.Columns(i).Resize(, 3).Sort _
Key1:=.Columns(i + 1), _
Order1:=xlAscending, _
OrderCustom:=L + 1, _
Header:=xlYes ’列見出しあり
Next
End With
End Sub
|
|