BINGO 5 パターン表 1
上の表の様にビンゴ5パターン表を作って見ましょう。
当選番号に合わせて表にしるしを付けるには関数かマクロでも出来ますね。
関数なら IF関数で当選番号に対応して作っていけば良いです。
当選が3なら表の対応するところに●なら =IF(B4=3,"●","")ですね。
表の対応する番号全部にあらかじめ関数を入れて行けば良いです。
マクロで作るならミニロトなどのマクロを参考にして作っても良いですね。
ユーザーホームで数字か記号かを選択するように考えてましたが?
ユーザーホームの作り方を忘れてましたw
思い出しながら作って見たいです。ミニロトのマクロを確認して行くしかないです。
ホットナンバーも表示出来る様に考えたいですね。
前に書いた「ユーザーホーム」の記事も参考になると思いますが、私は具体的に作り方を書いてないです。ネット上にあるプロの人のサイトをチェックするのが早いですw
ミニロトのマクロを参考にしておなじようにビンゴ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()とした方が本当は良いですね。