■ 並べ替え vba
サンプルは、セルが含まれる範囲を全対象にして、
・優先順位として、 C列(3)、E列(5)、F列(6)の順番で並び替える
・昇順
・項目名は項目名として認識して、並べ替えの対象にしない
・大文字小文字は区別しない
・並べ替えの向きは、縦(行の並び替え)
・ふりがな設定が入っていても、並び替えの対象にしない
・全角数字(文字列指定)と半角数字は、どちらも数字として認識して並び替えする。
----- べんりあつめ。-----
'並べ替え(条件が3つあるなら、3番目2番目1番目の順に書く)
With Range("A1").CurrentRegion 'セルが含まれる範囲を全対象にする
.Sort key1:=.Columns(6), _
Order1:=xlAscending, _
Header:=xlYes, _
MatchCase:=False, _
Orientation:=xlSortColumns, _
SortMethod:=xlStroke, _
DataOption1:=xlSortTextAsNumbers
.Sort key1:=.Columns(5), _
Order1:=xlAscending, _
Header:=xlYes, _
MatchCase:=False, _
Orientation:=xlSortColumns, _
SortMethod:=xlStroke, _
DataOption1:=xlSortTextAsNumbers
.Sort key1:=.Columns(3), _
Order1:=xlAscending, _
Header:=xlYes, _
MatchCase:=False, _
Orientation:=xlSortColumns, _
SortMethod:=xlStroke, _
DataOption1:=xlSortTextAsNumbers
End With
■ 設定説明
並び替え対象
Range("A1").CurrentRegion
※ 入力されているセル範囲を自動認識してくれるが、空白行や空白列があるとそこまでの認識になるので注意が必要なコード。
途中で、空白行や空白列があるような表の場合は、別コードで指定が必要
昇順降順
Order1 xlAscending:昇順 xlDescending:降順
項目名の対象
Header
xlNo 区別しない
xlYes 区別する(1行目を除く)
並び替え順のカスタム指示
例)CustomOrder:="山,川,海"
大文字小文字の区別
MatchCase
True 区別する
False 区別しない
並び替えの向き
Orientation
xlSortColumns 行の並び替え(通常)
xlSortRows 列の並び替え
ふりがなの利用
SortMethod
xlPinYin 利用する
xlStroke 利用しない
全角数字/半角数字の区別
DataOption1
xlSortNormal 区別する
xlSortTextAsNumbers 区別しない