ソートアルゴリズムが必要で、それを(行ではなく)列に適用します
これは簡単で汚いものです(わかりました、それは超高速のソーターではなく、私の記憶からではありませんが...):
Sub HorSort(SortRange As Range, SortRow As Long)
Dim Idx As Long, Jdx As Long, Kdx As Long, Tmp As Variant
For Idx = 1 To (SortRange.Columns.Count - 1)
For Jdx = 1 To (SortRange.Columns.Count - 1)
' compare values in row to be sorted
If SortRange(SortRow, Jdx) > SortRange(SortRow, Jdx + 1) Then
' swap all cells in column with the one to the right
For Kdx = 1 To SortRange.Rows.Count
Tmp = SortRange(Kdx, Jdx)
SortRange(Kdx, Jdx) = SortRange(Kdx, Jdx + 1)
SortRange(Kdx, Jdx + 1) = Tmp
Next Kdx
End If
Next Jdx
Next Idx
End Sub
Sub Test()
HorSort Selection, 1
End Sub
A1に以下のデータを入力
5 2 4 1 3
A D B E C
1 2 3 4 5
A1..E3を選択し、それぞれを実行します。
HorSort Selection, 1
HorSort Selection, 2
HorSort Selection, 3
からSub Test()
。もちろん、5 列に限定されません。