VBAを使ってロト6のデータを形にする その2
はじめに
前回、
vba-belle-equipe.hatenablog.com
本数字の当り回数を43の数字それぞれでカウントし、表示するところまでいきました。
今回は「ボーナス数字」と「連続ハズレ回数」を出してみます。
コード
こんな感じになりました。
Sub 更新() Dim startnum As Long, endnum As Long Dim i As Long, j As Long Dim hit(1 To 43) As Long Dim bonus(1 To 43) As Long Dim nohit(1 To 43) As Long Dim num As Long With Sheets("メイン") startnum = .Range("C1") endnum = .Range("C2") .Range("C3") = endnum - startnum + 1 End With With Sheets("結果") For i = startnum + 1 To endnum + 1 '連続ハズレ For j = 1 To 43 nohit(j) = nohit(j) + 1 Next '本数字 For j = 2 To 7 num = .Cells(i, j) hit(num) = hit(num) + 1 nohit(num) = 0 'ハズレリセット Next j 'ボーナス数字 num = .Cells(i, 8) bonus(num) = bonus(num) + 1 Next i End With For i = 6 To 48 Cells(i, 3) = hit(i - 5) Cells(i, 4) = bonus(i - 5) Cells(i, 5) = nohit(i - 5) Next End Sub
ボーナス数字
単純に
Dim bonus(1 To 43) As Long
と新しい配列を作って、カウントしています。
連続ハズレ回数
こちらは
Dim nohit(1 To 43) As Long
という配列を作り
- For文の「i」が増える(= 「回」を重ねる)ごとに連続ハズレ回数が1回ずつ増えていく
- ただし、当たったらその数字のカウントはゼロになる
というふうにしています。
結果
こんな感じです。
27回連続とか、なかなかハズレとんなという感じですが、どうなんでしょうか。
その辺の統計を次回はとってみたいと思います。