投稿/コメントを表示します。

Sub mondai9()
    Columns("B:B").Select
    ActiveWorkbook.Worksheets("main").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("main").Sort.SortFields.Add Key:=Range("B1"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("main").Sort
        .SetRange Range("A2:B317")
        .Orientation = xlTopToBottom
        .Apply
    End With

    Dim BG As Long
    Dim BEG As Long
    Dim WSM As Worksheet
    Dim ToG As Long
    
    Set WSM = Worksheets("main")
    BEG = WSM.Range("B65536").End(xlUp).Row
    ToG = 2
    
    For BG = 2 To BEG
        If WSM.Range("B" & BG).Value <> WSM.Range("B" & BG - 1).Value Then
            WSM.Range("D" & ToG).Value = ToG - 1
            WSM.Range("E" & ToG).Value = WSM.Range("B" & BG).Value
            ToG = ToG + 1
        End If
    Next
    
    Range("A2:B2").Select
    ActiveWorkbook.Worksheets("main").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("main").Sort.SortFields.Add Key:=Range("A2"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("main").Sort
        .SetRange Range("A2:B317")
        .Orientation = xlTopToBottom
        .Apply
    End With
End Sub

出来たことは出来たのですが、
Excel2010の自動記録が結構複雑で、どこを削ってよいか分からず、こんな長いマクロになってしまいました。
2014/07/06 03:30