コントロール コンボボックス(3列目がカナ設定)フリガナ順ソート
※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。
※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。
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 |