Excel VBA で昇順に並べ替える
こんにちは。
仕事の自動化にやりがいと達成感を感じるガッくんです。
この記事の目次
背景・目的
色々な VBA シーンに登場する並び替えですが、私は主に何かの処理の前処理や後処理で使っています。
いちいち書くのも、インターネットで探してコピペするのもめんどくさいので、サブルーチン化しておきます。
プログラム
ソースコード
Sub Test()
' アクティブシートのオブジェクト化
Set sh = ThisWorkbook.ActiveSheet
' 並び替えのキーセルのオブジェクト化
Set keyRng = sh.Cells(4, 1)
' 並び替え範囲のオブジェクト化
Set sortRng = sh.Range(keyRng, keyRng.End(xlDown))
' ソートサブルーチンのコール
Call 昇順ソート(sh, keyRng, sortRng)
End Sub
Sub 昇順ソート(ByVal objSheet, ByVal keyRng, ByVal sortRng)
With objSheet.Sort
' ソート設定のクリア
.SortFields.Clear
' ソート設定
.SortFields.Add _
Key:=keyRng, _
SortOn:=xlSortOnValues, _
Order:=xlAscending, _
DataOption:=xlSortNormal
' ソート範囲の設定
.SetRange sortRng
' ソート範囲の 1 行目がタイトルかどうかの設定
.Header = xlNo
' 大文字、小文字の区別設定
.MatchCase = False
' 並び替えの方向設定
.Orientation = xlTopToBottom
' ふりがなの使用設定
.SortMethod = xlPinYin
' 並び替え実行
.Apply
End With
End Sub
コメント
並び替え出来ました。
個人的に降順の並び替えはあまりやったことがないので、降順の並び替えサブルーチンは作りません。
以上