ExcelVBAを使ってビンゴカードを作ってみた!【オンライン忘年会で使える!】

IT-SKILL

 

オンラインで使えるビンゴカードを作りたい。どうやって作ればよいのかな?

 

こうした疑問を解決します。

 

Excelでビンゴカードは作成できる!

 

 

Excelを使用してビンゴカードを作成することは可能です!

 

だや
だや

自分はExcelVBAで、上記のようなビンゴカードを作成しました。

 

ビンゴカードの要件は以下の通り。

 

・ビンゴカードの番号は重複しないこと

・ビンゴカードの番号は1~75番までの乱数とすること

・ビンゴカードのマスは5×5とする

 

上記条件を満たしたビンゴカードを作成しました。

 

ExcelVBAを利用したビンゴカードのソースコード

 

以下はVBAのソースコードになります。

補足すると、

 

・「ビンゴカード生成」ボタンを押下することでビンゴカードが生成される

・数字が入ったセルをダブルクリックすることでセルが着色される

 

という作りです。

以下のマクロをコピーすることで、ビンゴカードを作成できます。

 

ボタンの名称は各自自分で作成しているビンゴカードに合わせて変更をお願いいたします。
(「Sub ビンゴカード作成_Click()」の部分は作成者によって変わります)

 

Private Sub ビンゴカード作成_Click()

    'メッセージボックスを出して確認
    Dim 確認 As VbMsgBoxResult
    確認 = MsgBox("カードをリセットし、ビンゴカードを作成してもよろしいですか?", vbYesNo + vbQuestion)
    If 確認 = vbNo Then
        Exit Sub
    End If
    
    '1~75の乱数を書き出す
    Dim i As Long, myNum As Long
    Dim myFlag(1 To 75) As Boolean
    
    '乱数系列を初期化
    Randomize
    For i = 2 To 6
        For j = 2 To 6
            Do
                myNum = Int(75 * Rnd(1)) + 1
            Loop Until myFlag(myNum) = False
            
            '値の重複を許可しないための処理
            Cells(i, j).Value = myNum
            Cells(i, j).Interior.Color = RGB(204, 204, 255)
            myFlag(myNum) = True
        Next j
    Next i
    
    '中心部からは数字を消して着色
    Cells(4, 4) = "★"
    Cells(4, 4).Interior.Color = vbYellow
    
    
    MsgBox "ビンゴカードが生成されました!"

End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

    If Intersect(Target, Range("B2:F6")) Is Nothing Then Exit Sub
    
    'ダブルクリックしたセルの色が白ではなければ白に変更する。白であれば元の色に戻す。
    With Selection.Interior
    If .ColorIndex = xlNone Then
        
        .ColorIndex = 24
        Else
        .ColorIndex = xlNone
    End If
    End With
    
    Cancel = True

End Sub

 

 

コメント

タイトルとURLをコピーしました