30日間1日1本マクロ生活、21日目です。
マクロを書く準備は、0日目に記事を書きました。
マクロを書く準備早速マクロを書こうと思ったんですが、マクロって何?食えんの?って人もいると思うんで、丁寧に行こうかな、と。マクロってのは、通常は人間の手でやるような作業を、プログラムを書くことで機械に自動的にやらせるってことです。Excelの場合はVBA(Visual Basic for Application)という言語を使ってマクロを書きます。まずはその準備を。Excelを起動すると、ワークシートが現れます。ここでキーボードの「ALT+」を押してください。はキーボードの上方にあるファンクションキーの11番です。すると、このウィンドウが開... 0日目 マクロを書く準備をしよう【30日間1日1本マクロ生活】 - わたしの日常に価値はありますか? |
じゃんけん1000回
今日は乱数のお話です。
Excelの機能の一つに「乱数」があります。
「Rnd()」という関数で、0から1までの実数で適当に一つ作ってくれる関数です。
これを使って、自動的にじゃんけんを1000回させてみます。
さっそくコードを
Sub じゃんけん()
n = 1000
Range(Cells(2, 1), Cells(2, 3)).ClearContents
For i = 1 To n
a = Int(Rnd() * 3) + 1
b = Int(Rnd() * 3) + 1
k = a - b
If k = 1 Or k = -2 Then Cells(2, 3) = Cells(2, 3) + 1
If k = -1 Or k = 2 Then Cells(2, 1) = Cells(2, 1) + 1
If k = 0 Then Cells(2, 2) = Cells(2, 2) + 1
Next i
End Sub
解説します。
6行目の7行目に「Rnd()」があります。
「Int」はカッコ内の数の整数部分を取り出す関数です。
「Rnd()」で0から1までの間の実数を一つ適当に作ってくれます。
それを3倍しますので、0より大、3未満の実数になります。
その数に1を足しますので、1より大、4未満の実数になります。
その整数部分ですから、1,2,3のいずれかになります。
この「1」を「グー」、「2」を「チョキ」、「3」を「パー」と設定します。
例えば、a=1, b=2 のときはaがグー、bがチョキですから、aの勝ちです。
aが勝ちのときは、a-bの値が-1または2になります。
bが価値のときは、a-bの値が1または-2になります。
あいこはもちろんa=bですからa-b=0です。
勝った方のセルに、数字を1ずつ足していきます。
実行結果
マクロを記述するウィンドウの「Sub」と「End Sub」の間にカーソルを置いて、画面上方の再生ボタン的なアイコン(右向きの三角形)をクリックするか、[F5]キーを押して実行します。
じゃんけんで勝つ確率は
だからといって、じゃんけんを1000回やって全部333回になるかというと、そうではないのが実社会の面白いところ。
実際に、そのような結果になりました。何度も実行してみると面白いですね。
Excelは便利
悔しいですが、Excelは便利です。
Microsoftにお金を払うのは癪でしょうがないんですが、Excelばかりは仕方がない。
マクロを書くようになると、Excelからは離れられないですね。
30日間、残り10日です。頑張ります。