【 エクセル ビンゴ カード 】マクロで時短!ビンゴカードの「番号並び」を大量生成するVBAコードを共有します

   
【 エクセル ビンゴ カード 】マクロで時短!ビンゴカードの「番号並び」を大量生成するVBAコードを共有します PC SKILL
【 エクセル ビンゴ カード 】マクロで時短!ビンゴカードの「番号並び」を大量生成するVBAコードを共有します

この記事では、「 エクセル ビンゴ カード 」の番号並びを、ワンクリックで大量生成するVBAコードを共有しています。手作業で エクセル ビンゴ カード の番号を配置する手間なく、ランダムで配置されたビンゴカードの並びが「自動で」簡単に取得できます。

エクセル ビンゴ カードのレイアウトは、このページをご覧になられている方がご用意いただく必要がありますが、一度レイアウトを作ってしまえば次回以降も活用可能です。

マクロの設定方法に不慣れな方でも操作しやすいよう、Excelの操作手順を画像付きで解説しています。マクロを活用して、 エクセル ビンゴ カード作成を時短しましょう。

 

ビンゴカードの仕様

ビンゴカードの仕様

  1. ランダム作成する エクセル ビンゴ カード の枚数:80枚
  2. マス目の設定:5✖5
  3. 使用する番号の範囲:1~54

※VBAコード内を編集することで各所の設定変更が可能です


ハナヤマ ビンゴSDスタンダード

ハナヤマ THE デジビンゴZ(ブラック)
【Amazon】で購入 【Amazon】で購入
【楽天】で購入 【楽天】で購入

nullie ビンゴ 番号付きボール1-75 予備球付き

NOLITOY 電動ビンゴマシーン ボール49個
【Amazon】で購入 【Amazon】で購入
【楽天】で購入 【楽天】で購入

マクロの設定方法(5ステップ)

マクロの設定方法(5ステップ)

  • Excelの「開発タブーVisual Basic」から設定を開始する
  • 「Visual Basic(VBA)」設定画面を開いたら、「挿入タブー標準モジュール」を選択する
  • 「Module1」が新たに表示されたら、下図の赤枠内に【VBAコード】を貼り付け、緑色の「▶」ボタンを押し、マクロを起動させる
  • マクロが新しいExcelシートを作成し、下図のように エクセル ビンゴ の「ランダムの番号並び」を80枚分、自動作成する
  • カスタマイズ方法

① Excelの「開発タブーVisual Basic」から設定を開始する

 Excelの「開発タブーVisual Basic」から設定を開始する

 

リボンのユーザー設定画像

「開発タブ」が存在しない場合、「ファイル タブーオプション」を選択し、「リボンのユーザー設定」から開発の部分にチェックを入れる

 

②「Visual Basic(VBA)」設定画面を開いたら、「挿入タブー標準モジュール」を選択する

「Visual Basic(VBA)」設定画面を開いたら、「挿入タブー標準モジュール」を選択する

 

③「Module1」が新たに表示されたら、下図の赤枠内に【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枚分、自動作成する

マクロが新しい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マクロを作成してほしい」などの仕事依頼がある場合は、下記フォームからお問合せください。返信まで少々お時間をいただくことがございますが、あらかじめご了承ください。

    あわせて読みたい

    Googleスプレッドシート とは |初心者ガイドから高度な活用事例まで完全解説!
    Googleスプレッドシート とは 、セルや数式を使った基本的な操作から、共同作業や他のデータ形式との連携まで、様々な機能が豊富に揃っているオンライン上のツールです。この記事では、「 Googleスプレッドシート とは 」と考えている方向けに、概要や9つの利用方法(一部)、更に高度な応用方法10選をご紹介します。
    Googleスプレッドシート 関数 使い方 |初心者でも安心!使える関数を総まとめ
    この記事では、利用頻度の高い Googleスプレッドシート 関数 使い方 を解説しています。スプレッドシートは、その効果的な利用には数々の関数の理解が欠かせません。 Googleスプレッドシート 関数 使い方 の具体例を交えながら使用方法をマスターしましょう。
    【 excel スプレッド シート 変換 】リアルタイムで共有・編集できる仕組みをつくる方法
    この記事では、遠方のメンバーとリアルタイムで共有・編集できる「 excel スプレッド シート 変換 」の方法をご紹介します。Googleアカウントを作成するだけで、 excel スプレッド シート 変換 が簡単に実現できます。Webブラウザ上でExcel編集が可能となり、複数名が同時編集できる仕組みが構築可能です。
    excel 重複削除 関数 |重要データのうっかり削除を防ぐ簡単な方法をお伝えします
    この記事では、「 excel 重複削除 関数 」を使用して、重要なデータのうっかり削除を防ぐ簡単な方法をお伝えします。エクセル 重複 1つだけ表示 ( まとめる )させたり、 重複を除いて抽出 する方法をお伝えします。複数の文字列を結合させた上で重複確認が行うと、これまで以上に精度の高い重複確認が行えるようになります。