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

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

BINGO 5 パターン表 1


記事目次 ロト・ビンゴ




上の表の様にビンゴ5パターン表を作って見ましょう。


当選番号に合わせて表にしるしを付けるには関数かマクロでも出来ますね。


関数なら IF関数で当選番号に対応して作っていけば良いです。


当選が3なら表の対応するところに●なら =IF(B4=3,"●","")ですね。


表の対応する番号全部にあらかじめ関数を入れて行けば良いです。



マクロで作るならミニロトなどのマクロを参考にして作っても良いですね。


ユーザーホームで数字か記号かを選択するように考えてましたが?
ユーザーホームの作り方を忘れてましたw


思い出しながら作って見たいです。ミニロトのマクロを確認して行くしかないです。


ホットナンバーも表示出来る様に考えたいですね。


前に書いた「ユーザーホーム」の記事も参考になると思いますが、私は具体的に作り方を書いてないです。ネット上にあるプロの人のサイトをチェックするのが早いですw


BINGO 5 パターン表 2 



ミニロトのマクロを参考にしておなじようにビンゴ5のマクロを作って見ました。
連番は少ないですが?01と40も連番として色付しています。


Public pata As String
Public pata_f As long
Public hit(1000, 8) As long
Dim colohani As Object


Sub bing5_patn() '当選数字パターン貼付け
Call saikeisanoff


Erase hit: pata_f = 0: pata = "" 'Public変数の初期化
 UserForm1.Show 'ユーザーホームを開く


    i = 4
Do Until Cells(i, 2) = ""
    For j = 1 To 8
        hit(i - 3, j) = Cells(i, j + 1)
    Next j
  
    If i = 300 Then Exit Do
     i = i + 1
    k = i
Loop


   For i = 1 To k - 4
        For j = 1 To 8
         If pata_f = 1 Then
                     
             Cells(i + 3, 10 + hit(i, j)) = hit(i, j)
          Else
                 
            Cells(i + 3, 10 + hit(i, j)) = pata
          End If
       Next j
   Next i
     Call renpata
     Call saikeisanon
End Sub



------------------
Sub renpata() '連番数字


i = 4
Do Until Cells(i, 2) = ""
    For k = 1 To 7
      
    If hit(i - 3, k) - hit(i - 3, k + 1) = -1 Then
 
       karaiti = Cells(i, k + 1) + 10
    Set colohan = Application.Union(Range(Cells(i, k + 1), Cells(i, k + 2)), Range(Cells(i, karaiti), Cells(i, karaiti + 1)))
   
       colohan.Interior.ColorIndex = 35
   
    End If
    Next k
   
      If hit(i - 3, 1) = 1 And hit(i - 3, 8) = 40 Then
     
       Set colohani = Application.Union(Cells(i, 2), Cells(i, 9), Cells(i, 11), Cells(i, 50))
       colohani.Interior.ColorIndex = 35
     
     End If
               
    If i = 1000 Then Exit Do
     i = i + 1
  
Loop
 Range(Cells(i, k), Cells(i, k + 1)).Select
End Sub



ユーザーホームのマクロは下の様にしました。
ユーザーホーム(UserForm)
オプションボタン1、2で数字かを選択するマクロ


ユーザーホームの変数はパブリック変数にします。


コマンドボタンのマクロ名は下記の様に 中止する 実行する に書き換えてます。
(書き換えなくてもOKです) 


オプションボタンをマウスでクリック後、右クリックし「コードの表示」選択後にコードを下記の様に修正します。




再計算を止める と 再計算するマクロ
マクロのスピードアップ 
再計算を止めた後は計算式のため再計算するに戻します。
                 
    Sub saikeisanoff()
    With Application
            .Calculation = xlManual
            .MaxChange = 0.001
        End With
        ActiveWorkbook.PrecisionAsDisplayed = False
               
    End Sub
   ----------------------
   Sub saikeisanon()
     With Application
            .Calculation = xlAutomatic
            .MaxChange = 0.001
        End With
        ActiveWorkbook.PrecisionAsDisplayed = True
    End Sub



再計算関係マクロを色んな場所で使うなら
Public Sub saikeisanoff()    Public Sub saikeisanon()とした方が本当は良いですね。