マクロ作成方法 4 (ナンバーズ4ペア数字集計(重複有))
上の様な表にボックス番号でのペア数字の集計をします。
考え方としては、たとえばボックス番号123や1234の場合のペア数字
・123はペア数字は 12、13、23になります。
・1234は同じように 12,13,14,23,24,34となります。
作成マクロとしては下記の順番になると思います。
・番号を分解する。
・小さい順に並べる。
・ペア数字を設定する。
・ペア数字を集計する。(表に出力も含む)
但し、1123の1ように同じ数字2ヶ以上の時の重複を計算しないようにするには
ペア数字の設定部分のマクロ作成がすこし難しい気がします。
(全部違う数字のシングルの場合は重複無なので問題はないですが?)
・1123はペアは11、12、13、12,、13、23 ですが12、13が重複してます。
12、13の集計を1回で終わらせるにはどうしたら良いかを考える事ですね。
・2255は22、25、25、25、25、55 で 25 が重複
・3335は33、33、35、33、35、35 で 33、35 が重複
・5555は55、55、55、55、55、55 で 55 だけで重複
以上の事から当選番号のタイプによって細かく条件を設定しなければ重複無のマクロは
作れない気がします。このへんがマクロ作成の難しさかも知れません。
(重複有の場合はペア設定マクロは共通ですから非常に楽だと思います。)
上表のシート「ストレートパターン」C列の当選番号から別のシート「出現数」へ下記のマクロで下の様に集計します。
全部の集計をします。
直近の部分的な集計は(例えば30回分を集計)
マクロ作成方法19(新規と変更)
< N4ボックスペア集計(重複あり)>
Sub n4bx_pea() 'ナンバーズボックスペア集計 (重複あり)
Dim xa As long, ya As long, i As long, j As long, k As long, l As long,deme(4) As long
Sheets("出現数").Select
Range("gh5:gq14").Select
Selection.ClearContents
i = 4
Call saikeisanoff ’再計算等を中止 マクロ作成方法 1 と同様
Do Until Sheets("ストレートパターン").Cells(i, 3) = ""
Cells(1, 190) = Val(Left(Sheets("ストレートパターン").Cells(i, 3), 1)) ’GH1セルの部分
Cells(1, 191) = Val(Mid(Sheets("ストレートパターン").Cells(i, 3), 2, 1))
Cells(1, 192) = Val(Mid(Sheets("ストレートパターン").Cells(i, 3), 3, 1))
Cells(1, 193) = Val(Right(Sheets("ストレートパターン").Cells(i, 3), 1)) 'GK1セル
Cells(1, 195) = "=small(gh1:gk1, 1)" ’たとえば1234の1の部分 GM1セルの部分
Cells(1, 196) = "=small(gh1:gk1, 2)" ’たとえば1234の2の部分
Cells(1, 197) = "=small(gh1:gk1, 3)" ’たとえば1234の3の部分
Cells(1, 198) = "=small(gh1:gk1, 4)" ’たとえば1234の4の部分 GP1セルの部分
For j = 1 To 4 '4つの数字(出目)を変数に格納する
deme(j) = Cells(1, 194 + j)
Next j
For k = 1 To 3 ’ペア数字をもとに計算出力する 1つ目と2~4目
xa = deme(1)
ya = deme(k + 1)
Cells(xa + 5, 190 + ya) = Cells(xa + 5, 190 + ya) + 1
Next k
For l = 2 To 3 ’ペア数字をもとに計算出力する 2つ目と3~4目
xa = deme(2)
ya = deme(l + 1)
Cells(xa + 5, 190 + ya) = Cells(xa + 5, 190 + ya) + 1
Next l
xa = deme(3) ’ペア数字をもとに計算出力する 3つ目と4目
ya = deme(4)
Cells(xa + 5, 190 + ya) = Cells(xa + 5, 190 + ya) + 1
i = i + 1
Loop
Call saikeisanon ’再計算等を開始
Cells(3, 187) = i - 4 & " 回" ’最終当選回号を表示
Cells(1, 190).Select
End Sub
Cells(xa + 5, 190 + ya) = Cells(xa + 5, 190 + ya) + 1の共通式をサブマクロに設定するには
変数xaと yaの設定を変えれば良いと思います。
ナンバーズ3のマクロの場合も基本的にはパターンは同じですね。
マクロでの上の計算結果が正しいかどうかを確かめるには?
(マクロの操作を手動操作でするだけですw)
次の操作を関数を使い手動ですれば良いと思います。(時間が掛かりますが可能ですね)
1・当選番号を小さい順に並び替える。
2・ペア数字を全部だす。
3・ペア数字全部を検索または関数で調べる。