
エントリが更新されるたびにテーブルを自動的に並べ替えるように Excel を構成 (スクリプトを使用することも可能) できますか?
答え1
グーグルでちょっと調べてみたら、次のことがわかりました。
Private Sub Worksheet_Change(ByVal Target As Range)
If Not (Application.Intersect(Worksheets(1).Range("E9:F32"), Target) Is Nothing) Then
DoSort
End If
End Sub
Private Sub DoSort()
Worksheets(3).Range("E3:M7").Sort Key1:=Worksheets(3).Range("M3"), Order1:=xlDescending, _
Key2:=Worksheets(3).Range("L3"), Order2:=xlDescending, Header:=xlYes
Worksheets(3).Range("E10:M14").Sort Key1:=Worksheets(3).Range("M10"), Order1:=xlDescending, _
Key2:=Worksheets(3).Range("L10"), Order2:=xlDescending, Header:=xlYes
Worksheets(3).Range("E17:M21").Sort Key1:=Worksheets(3).Range("M17"), Order1:=xlDescending, _
Key2:=Worksheets(3).Range("L17"), Order2:=xlDescending, Header:=xlYes
Worksheets(3).Range("E24:M28").Sort Key1:=Worksheets(3).Range("M24"), Order1:=xlDescending, _
Key2:=Worksheets(3).Range("L24"), Order2:=xlDescending, Header:=xlYes
End Sub
私は VBA についてあまり知識がありませんが、これをカスタマイズする方法を説明しようと思います。それがうまくいかなかった場合は、お知らせください。 ;)
最初のサブでは、関数がいつ実行されるかを定義します。上記の行は、ワークシート 1 のセル E9 から F32 までが変更されたときに DoSort を開始することを示しています。
DoSort はいくつかの範囲を並べ替えますが、独自のデータ範囲にも適応できます。不要な行を削除し、ワークシート番号とデータ範囲を変更するだけです。