2019-02-14ねぇもりさん、今日もなにかお題だしてよもりじゃあバブルソートでも書いてみよっか~これを書けばVBAの基本的な文法が一気に勉強できちゃうんだよバブルソートとは、ソートアルゴリズムの一つで、隣り合う数字の大小を比較して並び替えていく方法です。これらのメジャーな文法が一度に勉強できちゃうお題なのです。If(条件分岐)For~Next(繰り返し処理)Do~Loop(繰り返し処理)セルへの書き込み処理さぁ、みてみましょう。5)隣り合う数字を比較して並び替えループ1周目ループ2周目ループ3周目ループ4周目ループ5周目ソート結果を2行目に書き込みバブルソートのプログラムエクセルシートのA1セルを起点として適当な数字を入力し、マクロを実行すると、1行目の数列を小さい順に並べ替えた結果が2行目に書き込まれる仕組みです。Subコードだけみてもなにやってるか全然わからないよ~もりそうだよね...じゃあとびっきりやさしい解説いくよ~ソートアルゴリズムの解説ソート対象の数列[5,9,7,1,3]として解説していきます。ソート対象のデータ数を特定A1セルでCtrl+→を押した時にたどりつく最右列の列番号を取得します。1」と記述することで、配列のインデックスの下限値を1にすることができますExcelシートの列番号は1から始まります。そこで、今回のバブルソートでは、Excelの列番号と配列のインデックスを合わせて記述をシンプルにします。動的配列を宣言してから、要素数(n=5)を設定します。5って数が決まってるよね。Longじゃだめなの?もり配列を宣言するときの要素数に、変数(この場合、n)は使えないんだ。Ifこれも順番にみていきましょう5と9を比べると、左側の5の方が小さいので入れ替え不要です9と7を比べると、左側の9の方が大きいので入れ替えます一時変数tmpを使用して、隣同士の数字を入れ替えますこれで9と7を入れ替えることができました同じ方法で、隣り合う数字を比較して並び替えていきます1周目のループが終了し、5つの数字のなかで一番大きい9が一番右側にきましたこれで9の位置が決まったので、次のループで並び替えるのは配列(1)~(4)ですよね。合致するので、ループを抜けますソート結果を2行目に書き込み配列arrNumが小さい順に並びました。もりさんのプログラミング。