12日目 6で割って1余る数と5余る数を書き出そう【30日間1日1本マクロ生活】
30日間1日1本マクロ生活、12日目です。
6で割って1余る数、5余る数
マクロを書く準備は、0日目に記事を書きました。
今日は、11日目の続きです。
11日目は6で割って1余る数と5余る数をチェックしました。
今日は6で割って1余る数、5余る数を判定するのではなく、生成します。
とりあえず、100以下の整数でやりましょうか。
さっそくコードを
Sub 六の倍数プラス1プラス5()
y = 1
n = 1
c = 4
Do While n < 100
Cells(y, 1) = n
n = n + c
c = 6 - c
y = y + 1
Loop
End Sub
では、解説します。
nに6で割って1余る数と5余る数を入れていきます。
ですから、最初の数は1です。
cに4を入れておき、書き出し終わったらnにcを足します。
当然、1⁺4で5になります。6で割って5余る数です。
c=6-c
今回最大のポイントです。
cに4が入っていて、c=6-cを代入しなおすと、6-4で2になります。
次にc=6-cを代入しなおすと、6-2で4に戻ります。
つまり、4,2,4,2,4,2,4,2,…と繰り返す仕組みです。
6で割って1余る数に4を足すと、6で割って5余る数になります。
6で割って5余る数に2を足すと、6で割って1余る数になります。
つまり、6で割って1余る数と、6で割って5余る数が繰り返し出てくる仕組みです。
これをnが100未満の間繰り返します。
実行結果
マクロを記述するウィンドウの「Sub」と「End Sub」の間にカーソルを置いて、画面上方の再生ボタン的なアイコン(右向きの三角形)をクリックするか、[F5]キーを押します。
このように、5で割って1余る数、5余る数が順に表示されました。
一番下はこんな感じですね。きちんと最後まで処理されています。
なんのために?
昨日に引き続き、この処理、何のためにやったんでしょうね。
6で割って1余る数と5余る数?
この時点では何の役にも立ちません。でも、このお話にはさらに続きがあります。
数学をかじっている方なら、この先に何があるのかお分かりですね。
Excelは便利
悔しいですが、Excelは便利です。
Microsoftにお金を払うのは癪でしょうがないんですが、Excelばかりは仕方がない。
マクロを書くようになると、Excelからは離れられないですね。
30日間、頑張ります。