趣味のエクセルマクロ&数字選択式宝くじ

ナンバーズ4などの数字選択式宝くじデータ分析用の自作マクロおよびナンバーズ4などの各種データリストなどをブログにしています。

マクロ作成方法 3(N3ストレート・ボックス集計)

ナンバーズ4のストレート、ボックス集計マクロをもとにナンバーズ3を作って見ました。


Sheets("すとれ-と").Cells(i, 3) = ""のように他のシートのデータを元に集計しています。


桁数が少ない分、マクロもシンプルになります。







      (十一桁はナンバーズ3のミニに対応)



Sub n3st_count() 'ナンバーズ3のストレート集計 出力部は10×100で計1000セルの表
Dim i, hyaku, jyuuiti As Integer  '整数変数の宣言


 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, hyaku, jyuuiti, hyaku_y, jyuuiti_x, x_f As Integer
 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の時と共通です。




マクロ処理ではいつも最初のデータから最後の最新データで計算します。


マクロにミスが無ければ出力結果は正解と言えますね。


マクロの結果と、エクセルメニューの検索で合っているか確認すると良いと思います。


集計数の合計が当選回数と同じなら正しいとも言えますね。