わたしの日常に価値はありますか?

12日目 6で割って1余る数と5余る数を書き出そう【30日間1日1本マクロ生活】

30日間1日1本マクロ生活、12日目です。

6で割って1余る数、5余る数

マクロを書く準備は、0日目に記事を書きました。

マクロを書く準備早速マクロを書こうと思ったんですが、マクロって何?食えんの?って人もいると思うんで、丁寧に行こうかな、と。マクロってのは、通常は人間の手でやるような作業を、プログラムを書くことで機械に自動的にやらせるってことです。Excelの場合はVBA(Visual Basic for Application)という言語を使ってマクロを書きます。まずはその準備を。Excelを起動すると、ワークシートが現れます。ここでキーボードの「ALT+」を押してください。はキーボードの上方にあるファンクションキーの11番です。すると、このウィンドウが開...
0日目 マクロを書く準備をしよう【30日間1日1本マクロ生活】 - わたしの日常に価値はありますか?

今日は、11日目の続きです。

11日目は6で割って1余る数と5余る数をチェックしました。

30日間1日1本マクロ生活、11日目です。6で割って1余る数、5余る数マクロを書く準備は、0日目に記事を書きました。今日は、割り算の余りを考えます。6で割って1余る数と5余る数をチェックします。1列目に1から10000までの乱数を100個並べ、それらが6で割って1余る場合と5余る場合、2列目にその数の平方根以下の最大の整数を書きます。さっそくコードをSub 六で割って余りが一か五() y = 1 Do Until Cells(y, 1) = "" n = Cells(y, 1) If n Mod 6 = 1 Or n Mod 6 = 5 Then Cells(y, 2) = Int(n...
11日目 6で割って1余る数と5余る数をチェックしよう【30日間1日1本マクロ生活】 - わたしの日常に価値はありますか?

今日は6で割って1余る数、5余る数を判定するのではなく、生成します。

とりあえず、100以下の整数でやりましょうか。

さっそくコードを


Sub 六の倍数プラス1プラス5()
    y = 1
    n = 1
    c = 4
    Do While n 

では、解説します。

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日間、頑張ります。

モバイルバージョンを終了