セル 範囲を指定し並び替える

※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。

※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。

Option Explicit


Sub ExcelSort()
'*************************************
'セル 範囲を指定し並び替える
'*************************************
Dim sht As Worksheet, rng As Range
Dim Key(2) As Range

Set sht = ThisWorkbook.Worksheets("SubIndex")
Set rng = sht.Columns("A:D")
Set Key(1) = sht.Range("C1")
Set Key(2) = sht.Range("D1")

With sht
    rng.Sort Key1:=Key(1), Order1:=xlAscending, Key2:=Key(2) _
    , Order2:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:= _
    False, Orientation:=xlTopToBottom
End With

'Header:=xlGuess            範囲の先頭行自動判別
'Header:=xlYes              範囲の先頭行見出しとして
'Header:=xlNo               範囲の先頭行見出しではなくデータとして
'Order1:=xlAscending        昇順
'Order2:=xlDescending       降順
'OrderCustom:=1             リストの何番目に表示するか
'Orientation:=xlTopToBottom
'Orientation:=xlSortColumn  左から右に並べ替え
'Orientation:=xlSortRows    上から下に並べ替え
'MatchCase:=False           大文字小文字区別

'解説

'引数である Header、Order1、Order2、Order3、OrderCustom、Orientation で指定した値は
'このメソッドが実行されるたびに保持されます。
'これらの引数を省略してメソッドを実行した場合、
'保存されていた値が使用されます。
'問題の発生を防ぐため、このメソッドを実行するたびに、これらの引数を明確に指定します。

End Sub

 

 

2000年01月01日|[VBサンプルコード]:[CELL]