30日間1日1本マクロ生活、20日目です。
ついに3分の2です。あと10日ですね。頑張ります。
マクロを書く準備は、0日目に記事を書きました。
マクロを書く準備早速マクロを書こうと思ったんですが、マクロって何?食えんの?って人もいると思うんで、丁寧に行こうかな、と。マクロってのは、通常は人間の手でやるような作業を、プログラムを書くことで機械に自動的にやらせるってことです。Excelの場合はVBA(Visual Basic for Application)という言語を使ってマクロを書きます。まずはその準備を。Excelを起動すると、ワークシートが現れます。ここでキーボードの「ALT+」を押してください。はキーボードの上方にあるファンクションキーの11番です。すると、このウィンドウが開... 0日目 マクロを書く準備をしよう【30日間1日1本マクロ生活】 - わたしの日常に価値はありますか? |
区分求積法
今日は積分のお話です。
この積分の計算をここで解説するのはやめておきますね。
一方、高校の数学IIIの教科書に載っている「区分求積法」という計算法があります。
というものです。
これがどういう意味なのか、ということも説明するのはやめておきますね。
いっぱい足し算したら円周率が求められる
この式の意味する所は、
という足し算をず~~~~~~~っとやっていって、その合計をnで割ったら、計算結果が円周率
いやいや、そんなもんじゃないです。
なんたって無限大ですから。
だから、こんな計算、人間様の「手」でできるはずないんです。
だから、こんな時こそ機械の出番です。
Excelのマクロにやってもらいましょう。
さっそくコードを
Sub 区分求積()
s = 0
n = 10 ^ 8
For k = 1 To n
s = s + 1 / (1 + (k / n) ^ 2)
Next k
Cells(1, 1) = 4 * s / n
End Sub
解説します。
とりあえず、
変数sに足し算の結果をどんどん追加していきます。
最後にセルA1に合計のsを4倍してnで割ったものを表示します。
上手くいけば、これが
実行結果
マクロを記述するウィンドウの「Sub」と「End Sub」の間にカーソルを置いて、画面上方の再生ボタン的なアイコン(右向きの三角形)をクリックするか、[F5]キーを押して実行します。
いやあ、nがたったの1億なのに、かなりの精度ですね。
3.141592644ですよ。
わたしが覚えている円周率は3.14159265358979323ですから、小数第7位まで合ってますよ。
正直、nがたった1億でここまで合うと思っていなかったので、かなり驚いています。はい。
ただ、1億もの項の計算、人間の手では無理ですよね。さすがExcelです。
Excelは便利
悔しいですが、Excelは便利です。
Microsoftにお金を払うのは癪でしょうがないんですが、Excelばかりは仕方がない。
マクロを書くようになると、Excelからは離れられないですね。
30日間、残り10日です。頑張ります。