Public Sub コンボ昇順(obj As ComboBox)
'*******************************************************************************
'コンボ(3列目がカナ設定)フリガナ順ソート
'*******************************************************************************
Dim n As Long, i As Long, m As String, s As Long, j As Long, t(3) As String
Dim Data(), a As Long, b As Byte
n = obj.ListCount
ReDim Data(n, 3)
For a = 1 To n
For b = 1 To 3
Data(a, b) = obj.List(a - 1, b - 1)
Next b
Next a
For i = 2 To n - 1 '1は項目
m = Data(i, 3)
s = i
For j = i + 1 To n
If Data(j, 3) < m Then
m = Data(j, 3)
s = j
End If
Next j
t(3) = Data(i, 3): t(2) = Data(i, 2): t(1) = Data(i, 1)
Data(i, 3) = Data(s, 3): Data(i, 2) = Data(s, 2): Data(i, 1) = Data(s, 1)
Data(s, 3) = t(3): Data(s, 2) = t(2): Data(s, 1) = t(1)
Next i
obj.Clear
For a = 1 To n
obj.AddItem Data(a, 1)
For b = 2 To 3
obj.List(a - 1, b - 1) = Data(a, b)
Next b
Next a
End Sub
|
|