セル 範囲を指定し並び替える
※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。
※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。
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 |