Excel VBA 「カー家計簿」ソート
Excel VBA 「カー家計簿」ID順、日付順ソート
ソートとは
ソートとはデータをある項目を一定の順番に並び替えることです。例えば、
上図はIDを番号の若い順(昇順)に並び替えたものです。次に
上図はIDを番号の大きい順(降順)に並び替えたものです。日付に対しても昇順ソート、降順ソートを行い、データを閲覧しやすくするよう工夫をします。
ソート処理のソースリスト
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
Private Sub List_Meisai_NO_Asc() ''''NO順昇順 Worksheets("Temp").Select Dim wk_Line As Long Dim i As Integer wk_Line = Cells(Rows.Count, 1).End(xlUp).Row List_Meisai.Clear With List_Meisai .FontSize = 10 .ColumnCount = 12 .ColumnWidths = "30,30,0,70,100,80,230,120,140,40,40,40" .TextAlign = fmTextAlignLeft .Font.Name = "MS ゴシック" Worksheets("Temp").Range(Cells(2, 1), Cells(wk_Line, 11)) _ .Sort key1:=Worksheets("Temp").Cells(1, 1), Order1:=xlAscending ''''NO順昇順 For i = 2 To wk_Line .AddItem Cells(i, 1).Value .List(.ListCount - 1, 1) = Cells(i, 2).Value .List(.ListCount - 1, 2) = Cells(i, 3).Value .List(.ListCount - 1, 3) = Format(Cells(i, 4).Value, "yyyy/m/d") .List(.ListCount - 1, 4) = Cells(i, 5).Value .List(.ListCount - 1, 5) = Cells(i, 6).Value .List(.ListCount - 1, 6) = Cells(i, 7).Value .List(.ListCount - 1, 7) = Cells(i, 8).Value .List(.ListCount - 1, 8) = Cells(i, 9).Value .List(.ListCount - 1, 9) = Cells(i, 10).Value Next End With End Sub Private Sub List_Meisai_NO_Desc() ''''NO順降順 Worksheets("Temp").Select Dim wk_Line As Long Dim i As Integer wk_Line = Cells(Rows.Count, 1).End(xlUp).Row List_Meisai.Clear With List_Meisai .FontSize = 10 .ColumnCount = 12 .ColumnWidths = "30,30,0,70,100,80,230,120,140,40,40,40" .TextAlign = fmTextAlignLeft .Font.Name = "MS ゴシック" Worksheets("Temp").Range(Cells(2, 1), Cells(wk_Line, 11)) _ .Sort key1:=Worksheets("Temp").Cells(1, 1), Order1:=xlDescending ''''NO順降順 For i = 2 To wk_Line .AddItem Cells(i, 1).Value .List(.ListCount - 1, 1) = Cells(i, 2).Value |
上の例はIDに対して昇順、降順にソートするソースリストになります。