アルゴリズムの視覚化 この図は左が大きく、 右が小さくなるようにソートしている Qiita@r-ngtm この図は左が大きく、 右が小さくなるようにソートしている Qiita@r-ngtm https://qiita.com/r-ngtm/items/f4fa55c77459f63a5228
最終的なプログラム 'バブルソートで並び替え '連続データの終点を探すを利用 Dim i As Integer, a As String For i = 1 To 30000 a = Cells(i, 1).Value If a = "" Then Exit For Next i = i - 1 'iから1を引いてデータの最終行とする 'ソートが一度でも起こったらフラグを立てる 'フラグが折れたままなら終了 Dim flag As Integer, v As Integer, c As Integer looptop: 'フラグが立っていたらソートが終わっていない flag = 0 'フラグの初期化 For v = 1 To i - 1 If Cells(v, 1).Value > Cells(v + 1, 1).Value Then c = Cells(v, 1).Value 'v行の数字を変数cに待避 Cells(v, 1).Value = Cells(v + 1, 1).Value 'v+1行の数字をv行にコピー Cells(v + 1, 1).Value = c 'cに待避したv行の数字をv+1行にコピー flag = 1 '入れ替えが起こったからフラグを立てる End If If flag = 1 Then GoTo looptop '入れ替えフラグが立っている限り上に戻る MsgBox "終了しました" '終了の合図