変数 変数だけでソート(並び替え)昇順降順
※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。
※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。
Private Sub test() '************************************* '変数だけでソート(並び替え)昇順降順 '************************************* Dim i As Byte, str As String Dim testData() As Long ReDim testData(10) As Long testData(1) = 3 testData(2) = 7 testData(3) = 1 testData(4) = 9 testData(5) = 2 testData(6) = 5 testData(7) = 8 testData(8) = 4 testData(9) = 6 testData(10) = 0 VariableSortAsc testData str = "" For i = 1 To 10 str = str & i & vbTab & testData(i) & vbCr Next i MsgBox str ReDim testData(10) As Long testData(1) = 3 testData(2) = 7 testData(3) = 1 testData(4) = 9 testData(5) = 2 testData(6) = 5 testData(7) = 8 testData(8) = 4 testData(9) = 6 testData(10) = 0 VariableSortDes testData str = "" For i = 1 To 10 str = str & i & vbTab & testData(i) & vbCr Next i MsgBox str End Sub Sub VariableSortAsc(lngData As Variant) '************************************* '変数だけでソート(並び替え)昇順 '************************************* 'Ascending order 昇順 '1次元用 Dim MainSort As Long Dim SubSort As Long Dim lngChange As Long For MainSort = LBound(lngData) To UBound(lngData) For SubSort = UBound(lngData) To MainSort Step -1 If lngData(MainSort) > lngData(SubSort) Then lngChange = lngData(MainSort) lngData(MainSort) = lngData(SubSort) lngData(SubSort) = lngChange End If Next SubSort Next MainSort End Sub Sub VariableSortDes(lngData As Variant) '************************************* '変数だけでソート(並び替え)降順 '************************************* 'Descending order 降順 '1次元用 Dim MainSort As Long Dim SubSort As Long Dim lngChange As Long For SubSort = UBound(lngData) To MainSort Step -1 For MainSort = LBound(lngData) To UBound(lngData) If lngData(MainSort) < lngData(SubSort) Then lngChange = lngData(MainSort) lngData(MainSort) = lngData(SubSort) lngData(SubSort) = lngChange End If Next MainSort Next SubSort End Sub |