マクロ作成方法 3(N3ストレート・ボックス集計)
ナンバーズ4のストレート、ボックス集計マクロをもとにナンバーズ3を作って見ました。
Sheets("すとれ-と").Cells(i, 3) = ""のように他のシートのデータを元に集計しています。
桁数が少ない分、マクロもシンプルになります。
(十一桁はナンバーズ3のミニに対応)
変数 知らなかった本当の使い方
Sub n3st_count() 'ナンバーズ3のストレート集計 出力部は10×100で計1000セルの表
Dim i As long, hyaku As long, jyuuiti As long '整数変数の宣言
Sheets("ミニ出現数 ").Select ’マクロ処理シート選択(出力先)
Range("fd6:iy15").Select ’マクロ処理セル選択
Selection.ClearContents ’同上セルの初期設定(データを削除)
i = 4 ’最初の処理行
Call saikeisanoff ’マクロ処理速度アップの為に再計算等を止める
Do Until Sheets("すとれ-と").Cells(i, 3) = "" ’データ部が無くなる迄下記の処理
hyaku = Val(Left(Sheets("すとれ-と").Cells(i, 3), 1)) + 6 ’百の出力位置計算
jyuuiti = Val(Right(Sheets("すとれ-と").Cells(i, 3), 2)) + 160 ’十一の出力位置計算
Cells(hyaku, jyuuiti) = Cells(hyaku, jyuuiti) + 1 ’上の出力位置で集計する
i = i + 1 ’処理セルを1行づつ増やす(4→5→6→7---最後の行迄)
Loop ’処理を繰り返す
Call saikeisanon ’再計算等をする
Cells(1, 160).Select
End Sub
Sub n3bx_count() 'ボックス集計
Dim i As long, hyaku As long, jyuuiti As long, hyaku_y As long, jyuuiti_x As long, x_f As long
Sheets("ミニ出現数 ").Select ’マクロ処理シート選択(出力先)
Range("fd24:hf33").Select
Selection.ClearContents
i = 4
Call saikeisanoff
Do Until Sheets("すとれ-と").Cells(i, 3) = ""
Cells(1, 160) = Val(Left(Sheets("すとれ-と").Cells(i, 3), 1))
Cells(1, 161) = Val(Mid(Sheets("すとれ-と").Cells(i, 3), 2, 1))
Cells(1, 162) = Val(Right(Sheets("すとれ-と").Cells(i, 3), 1))
Cells(1, 164) = "=small(fd1:ff1, 1)"
Cells(1, 165) = "=small(fd1:ff1,2) & small(fd1:ff1,3)"
hyaku_y = Cells(1, 164) ’ボックスにした時の百位
jyuuiti_x = Cells(1, 165)
Select Case jyuuiti_x '十一の部分だけ位置修正
Case 11 To 19
x_f = 1
Case 22 To 29
x_f = 3
Case 33 To 39
x_f = 6
Case 44 To 49
x_f = 10
Case 55 To 59
x_f = 15
Case 66 To 69
x_f = 21
Case 77 To 79
x_f = 28
Case 88 To 89
x_f = 36
Case 99
x_f = 45
Case Else
x_f = 0
End Select
hyaku = hyaku_y + 24 ’24行目から
jyuuiti = jyuuiti_x + 160 - x_f ’160列から - x_fで列修正
Cells(hyaku, jyuuiti) = Cells(hyaku, jyuuiti) + 1
i = i + 1
Loop
Call saikeisanon
Cells(1, 160).Select
End Sub
(注)Call saikeisanoffなどはナンバーズ4の時と共通です。
マクロ処理ではいつも最初のデータから最後の最新データで計算します。
マクロにミスが無ければ出力結果は正解と言えますね。
マクロの結果と、エクセルメニューの検索で合っているか確認すると良いと思います。
集計数の合計が当選回数と同じなら正しいとも言えますね。