【Excelマクロ】値を書き込んだらリアルタイムにソートする
下記の要望に対応するVBAマクロを作成しました。
・Excelで値を変更したら、リアルタイムに列のデータを並べ替えたい
・貼り付けなどで複数セルを一気に編集することがある。編集した範囲をまとめて並べ替えたい
このケースがそのまま該当することは少ないかもしれませんが、Excel作業を効率化したい方の参考になればと思い共有します。
下記のソースコードを該当シートのマクロに書けばOKです。
プログラミング的なポイントは、変更した範囲の列だけをソートして、余計な時間をかけないようにすることです。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim colBegin As Long 'ソート対象列の開始列番号
Dim colEnd As Long 'ソート対象列の終了列番号
Dim colCount As Long '編集された列数
Dim colStr As String 'ソート列名
Dim l As Long
Dim ws As Worksheet
Set ws = ActiveSheet
colBegin = Target.Column
colCount = Target.Columns.count
colEnd = colBegin + colCount - 1
For l = colBegin To colEnd
colStr = Split(Cells(, l).Address, "$")(1)
'Debug.Print (colStr) 'デバッグ用 ソート対象の列名を確認
ws.Sort.SortFields.Clear
ws.Sort.SortFields.Add Key:=Range(colStr & "1"), Order:=xlAscending
ws.Sort.SetRange Range(colStr & ":" & colStr)
ws.Sort.Apply
Next
End Sub
ちなみに、マクロを組むほどではないにしてもソート機能をよく使用するのであれば、ショートカット(アクセスキー)を覚えておくと便利です。ソート機能のショートカットキーは「ソート範囲を選択してAlt→h→s→u」です。
Excelでの定型作業は、ショートカット、関数、マクロを活用して、できるだけ効率化しましょう。
Excel作業を楽にしよう
日頃、面倒だなと思っている作業も、Excelのことを少し知るだけで簡単に片付けられるようになったりします。
どんなことができるのかを知っているだけでも違うので、よくExcelを使うという方は参考書などをざっと見てみることをオススメします!
Kindle Unlimited会員なら無料で読めるExcel関連書籍を紹介しておきます。
ディスカッション
コメント一覧
まだ、コメントがありません