この記事では、「 エクセル ビンゴ カード 」の番号並びを、ワンクリックで大量生成するVBAコードを共有しています。手作業で エクセル ビンゴ カード の番号を配置する手間なく、ランダムで配置されたビンゴカードの並びが「自動で」簡単に取得できます。
エクセル ビンゴ カードのレイアウトは、このページをご覧になられている方がご用意いただく必要がありますが、一度レイアウトを作ってしまえば次回以降も活用可能です。
マクロの設定方法に不慣れな方でも操作しやすいよう、Excelの操作手順を画像付きで解説しています。マクロを活用して、 エクセル ビンゴ カード作成を時短しましょう。
- マクロ操作に不慣れでも画像解説付き
- マクロを一度動かすだけで80枚分の「ランダムで配置されたビンゴカードの並び」が作成
- マクロのカスタマイズができるよう、VBAコード編集解説も用意
ビンゴマシーンの値を目立つように表示させたい方向け
本記事の構成(=もくじ)
ビンゴカードの仕様
- ランダム作成する エクセル ビンゴ カード の枚数:80枚
- マス目の設定:5✖5
- 使用する番号の範囲:1~54
※VBAコード内を編集することで各所の設定変更が可能です
ハナヤマ ビンゴSDスタンダード |
ハナヤマ THE デジビンゴZ(ブラック) |
【Amazon】で購入 | 【Amazon】で購入 |
【楽天】で購入 | 【楽天】で購入 |
nullie ビンゴ 番号付きボール1-75 予備球付き |
NOLITOY 電動ビンゴマシーン ボール49個 |
【Amazon】で購入 | 【Amazon】で購入 |
【楽天】で購入 | 【楽天】で購入 |
マクロの設定方法(5ステップ)
- Excelの「開発タブーVisual Basic」から設定を開始する
- 「Visual Basic(VBA)」設定画面を開いたら、「挿入タブー標準モジュール」を選択する
- 「Module1」が新たに表示されたら、下図の赤枠内に【VBAコード】を貼り付け、緑色の「▶」ボタンを押し、マクロを起動させる
- マクロが新しいExcelシートを作成し、下図のように エクセル ビンゴ の「ランダムの番号並び」を80枚分、自動作成する
- カスタマイズ方法
① Excelの「開発タブーVisual Basic」から設定を開始する
②「Visual Basic(VBA)」設定画面を開いたら、「挿入タブー標準モジュール」を選択する
③「Module1」が新たに表示されたら、下図の赤枠内に【VBAコード】を貼り付け、緑色の「▶」ボタンを押し、マクロを起動させる
赤枠内に張り付けるVBAコード
Sub CreateBingoCards()
Dim cardCount As Integer
cardCount = 80 ' 作成する エクセル ビンゴ カード の枚数
Dim numbers(1 To 54) As Integer
Dim i As Integer
' 数字の配列を初期化
For i = 1 To 54
numbers(i) = i
Next i
Dim cardSheet As Worksheet
Set cardSheet = ThisWorkbook.Sheets.Add ' ビンゴカードを作成するシート
Dim cardRow As Integer
Dim cardCol As Integer
Dim rng As Object
Set rng = CreateObject("System.Random")
For cardRow = 1 To cardCount
' エクセル ビンゴ カード を作成する範囲を指定
Dim cardRange As Range
Set cardRange = cardSheet.Range("A" & (cardRow - 1) * 6 + 1 & ":G" & (cardRow - 2) * 6 + 5)
' 数字の配列をシャッフル
For i = 1 To 54
Dim j As Integer
j = Int((54 - i + 1) * rng.NextDouble()) + i ' iから54までのランダムな数値を生成
' 数字を入れ替える
Dim temp As Integer
temp = numbers(i)
numbers(i) = numbers(j)
numbers(j) = temp
Next i
' エクセル ビンゴ カード に数字を設定
For cardCol = 1 To 5
cardRange.Cells(1, cardCol).Value = numbers((cardCol - 1) * 5 + 1)
cardRange.Cells(2, cardCol).Value = numbers((cardCol - 1) * 5 + 2)
cardRange.Cells(3, cardCol).Value = numbers((cardCol - 1) * 5 + 3)
cardRange.Cells(4, cardCol).Value = numbers((cardCol - 1) * 5 + 4)
cardRange.Cells(5, cardCol).Value = numbers((cardCol - 1) * 5 + 5)
Next cardCol
Next cardRow
End Sub
④ マクロが新しいExcelシートを作成し、下図のように エクセル ビンゴ の「ランダムの番号並び」を80枚分、自動作成する
⑤ カスタマイズ方法
上記VBAコードを変更すると、作成したいカード枚数や使用したい値の範囲が変更できます
- 作成する エクセル ビンゴ カード の枚数を変更したい場合
- マス目(5✖5)の設定を変更したい場合
- 使用する番号の範囲(1~54)を変更したい場合
作成する エクセル ビンゴ カード の枚数を変更したい場合
下記コード部分の「80」を、作成したいカード枚数の値へ変更
(100枚であれば「100」、50枚であれば「50」と入力する)
cardCount = 80 ' 作成する エクセル ビンゴ カード の枚数
マス目(5✖5)の設定を変更したい場合
複数個所の設定変更が必要です
① 空白行の確保をするためのVBAコード変更
Set cardRange = cardSheet.Range("A" & (cardRow - 1) * 6 + 1 & ":G" & (cardRow - 2) * 6 + 5)
上記コードの中にある「6」は、5✖5マスの下が空白行であることを示しています
仮に7✖7マスへ設定変更したい場合は、「6を8へ」変更する必要があります(7✖7マスの下を空白行にするため)
② ビンゴカードのマス設定をするためのVBAコード変更
下記コードの各行にある「5」は5✖5マスの「5」を示しています
仮に7✖7マスへ設定変更したい場合は、「5を7へ」変更する必要があります
★下記VBAコードは変更前のものです★
' エクセル ビンゴ カード に数字を設定
For cardCol = 1 To 5
cardRange.Cells(1, cardCol).Value = numbers((cardCol - 1) * 5 + 1)
cardRange.Cells(2, cardCol).Value = numbers((cardCol - 1) * 5 + 2)
cardRange.Cells(3, cardCol).Value = numbers((cardCol - 1) * 5 + 3)
cardRange.Cells(4, cardCol).Value = numbers((cardCol - 1) * 5 + 4)
cardRange.Cells(5, cardCol).Value = numbers((cardCol - 1) * 5 + 5)
仮に7✖7マスへ設定変更したい場合は下記のようになります
★「7✖7マス」へ変更した後のVBAコード★
' エクセル ビンゴ カード に数字を設定
For cardCol = 1 To 5
cardRange.Cells(1, cardCol).Value = numbers((cardCol - 1) * 7 + 1)
cardRange.Cells(2, cardCol).Value = numbers((cardCol - 1) * 7 + 2)
cardRange.Cells(3, cardCol).Value = numbers((cardCol - 1) * 7 + 3)
cardRange.Cells(4, cardCol).Value = numbers((cardCol - 1) * 7 + 4)
cardRange.Cells(5, cardCol).Value = numbers((cardCol - 1) * 7 + 5)
cardRange.Cells(6, cardCol).Value = numbers((cardCol - 1) * 7 + 6)
cardRange.Cells(7, cardCol).Value = numbers((cardCol - 1) * 7 + 7)
使用する番号の範囲(1~54)を変更したい場合
三ヶ所の設定変更が必要になります
① 使用する値の範囲を宣言するためのVBAコード変更
例えば「2~30」の範囲へ変更したい場合、下記コードの「1、54」の値を「2、30」へ変更
Dim numbers(1 To 54) As Integer
② 上記同様、使用する値の範囲を宣言するためのVBAコード変更
上記同様、例えば「2~30」の範囲へ変更したい場合は、上記コードの「1、54」の値を「2、30」へ変更
For i = 1 To 54
※「For i = 1 To 54」は2か所あるので、双方の変更を忘れずに
③ 使用する値の上限を宣言するためのVBAコード変更
下記コードの「54」を、変更したい値の最大値に変更します
例えば「2~30」の範囲へ変更したい場合は、下記コードの「54」の値を「30」へ変更
j = Int((54 - i + 1) * rng.NextDouble()) + i ' iから54までのランダムな数値を生成
まとめ
ビンゴカードを自作する際、複数の番号並びを用意するのが一番の手間になる部分ですが、このVBAコードを使用することで、重複が無いランダムの番号並びが瞬時に取得できます。
また、自由にカスタマイズできるよう、具体例を記事内に記載しておりますので、Excelマクロに不慣れな方でも問題なく操作できます。様々なイベントの際は、このマクロをご利用いただき、手間をかけずに エクセル ビンゴ カード を作成いただければと思います。
この記事に関しての質問や、「Excelマクロを作成してほしい」などの仕事依頼がある場合は、下記フォームからお問合せください。返信まで少々お時間をいただくことがございますが、あらかじめご了承ください。