趣味のエクセルで当てよう!ロト・ナンバーズ

当選狙いで、ナンバーズ4をメインにロト、ビンゴ5などの各種データリストや、それらの分析用エクセルVBAなどについて書いてます。

ナンバーズ4 新ボックス出現間隔集計


記事目次 ナンバーズ4 



・下記の様に各ボックスの最新はまり間隔を最終回から
 さかのぼって出して見ました。


データは下に行くほど古い回になる。
--------------------------------------


(上表DEFG列からボックスの番号作成)


・マクロ (最終回号から間隔などを計算する)
Sub box_kankaku_CHKnew() 'ボックスの出現間隔、回数、最大はまり、平均確率 ,直近回号から昔に向かって計算
'最後の当選は1回目として計算する。15行目から最新データになるので随時更新される。


Dim i As Long, kaigo As Long, caunter As Long, reiti As Long

Dim bx_no As Range, start As Long

Sheets("box分析").Select

kaigo = Worksheets("ストレートパターン").Cells(1, 56).Value

Range("wi15:wn729").ClearContents

Range("wr10:ayd13,wr15:ayd300").ClearContents


’ボックス番号作成しコピー
Range("wp15") = "=SMALL(ストレートパターン!D4:G4,1)&SMALL(ストレートパターン!D4:G4,2)&SMALL(ストレートパターン!D4:G4,3)&SMALL(ストレートパターン!D4:G4,4)"
Range("wp15").Copy Range(Cells(16, 614), Cells(14 + kaigo, 614))

start = MsgBox("最終回号からさかのぼって開始しますか?", vbYesNo)

If start = vbNo Then End

Call saikeisanoff


i = 14 + kaigo

Do Until i = 14

 Cells(i, 613) = i - 14 '回号表示


Set bx_no = Cells(i, 614)

reiti = Range("wr14:ayd14").Find(bx_no).Column

caunter = WorksheetFunction.CountA(Range(Cells(15, reiti), Cells(40, reiti))) '当選回数

Cells(12, reiti) = caunter + 1 '出現回数


If caunter = 0 Then '最初の出力

 Cells(51, reiti) = Cells(i, 613) '当選回号

If kaigo = Cells(i, 613) Then
 Cells(15, reiti) = 1 '当選間隔

Else
 Cells(15, reiti) = kaigo + 1 - Cells(i, 613) '当選間隔

End If

 Cells(100, reiti) = Sheets("ストレートパターン").Cells(i - 11, 3) '当選番号

Else '次回以降の出力

 Cells(51 + caunter, reiti) = Cells(i, 613) '当選回号

 Cells(15 + caunter, reiti) = Cells(50 + caunter, reiti) - Cells(51 + caunter, reiti)

 Cells(100 + caunter, reiti) = Sheets("ストレートパターン").Cells(i - 11, 3) '当選番号

End If


Cells(10, reiti) = WorksheetFunction.Max(Range(Cells(15, reiti), Cells(40, reiti))) '最大ハマリ
Cells(11, reiti) = WorksheetFunction.Average(Range(Cells(15, reiti), Cells(40, reiti))) '平均出現確率

Cells(13, reiti) = Cells(15, reiti) '現状ハマリ

i = i - 1

Loop

For i = 1 To 715

 Cells(14 + i, 607) = Cells(14, 615 + i)

If Cells(12, 615 + i) = 0 Then
 Cells(14 + i, 608) = ""
 Cells(14 + i, 609) = 0

Else
 Cells(14 + i, 609) = Cells(12, 615 + i)
 Cells(14 + i, 608) = Cells(13, 615 + i)
End If
 Cells(14 + i, 610) = Cells(11, 615 + i)
 Cells(14 + i, 611) = Cells(10, 615 + i)
 Cells(14 + i, 612) = Cells(7, 615 + i)

Next i

Call saikeisanon

Range("ww15").Select


End Sub



Excel VBA 文法はわかるのにプログラムが書けない人が読む本【電子書籍】[...