イベント企画などでの抽選作業を、エクセルVBAを利用して簡単に進めて行きます。
無料でダウンロードできるエクセルVBA抽選ソフト【重複なし】です。
少人数参加から大人数まで対応します。記事内に説明書きあります。
こんにちは、じゅんぱ店長(@junpa33)です。
今回のテーマは、エクセルVBA抽選ソフトです。
応募者や申し込み件数の中から懸賞当選やプレゼントする人を選ぶ時の「抽選ソフト」についてです。
抽選作業はイベント企画者や担当者にとっては、色んな面で頭の痛い作業ではないかと思います。
コンテンツ
無料DL エクセルVBA 抽選ソフト【重複なし】の特徴
この無料DLソフトは、エクセルVBAで組み立てています。
処理人数としては少人数から大人数の参加者まで利用することが出来ます。
例えば大人数として「30万人の抽選会の想定」で動かした時のPriSc(プリントスクリーン)はこんな↓感じです。
抽選の利用時の前提としては、
ID番号が付けられた参加者リストがエクセルやCSVで作成されていることです。
抽選の仕組みとしては、
当選者をそのID番号で表示します。
参加者の人数に応じた抽選表方眼マスを作成し、参加者のID番号をランダムにはめ込んでいきます。
その抽選表を基に、各賞ごとに抽選し当選の番号は点灯します。
重複当選については、
重複当選は禁止になります。
最初に当選した賞が優先され、再度賞に当選しても無効となります。
上位賞から抽選をするか、下位賞から始めるか宣言しておきましょう。
抽選参加者リストとの紐づけについては、
このエクセルVBAソフトと抽選参加者リストはID番号で紐づけられますので、両方の末尾ID番号は一致していなければいけません。
当選者数の多さによっては、Lookup関数やMatch関数でマッチングのエクセルデータ処理を行うことをお勧めします。
エクセルVBA抽選ソフトの無料ダウンロード
『抽選での当選者決定作業』をデスクワークで行っているとき、
と、要らない心配をしながら抽選作業を進める担当者さん、お疲れ様です。
以前は、自分もそうでした。
抽選しているところをみんなに見てもらっても、
エクセルの表にダラダラ小数点の変な数字が並んでいくだけで、
「はいこの人、当選です!」と言っても「え?なにが」って、信じてもらえなさそうで・・・
悩める君
そんな方々、もう大丈夫です。
このエクセルVBAソフトを使えば、お天道様の下でも堂々と抽選会が開けます。
特に「誰も見ていないとはいえ、抽選は公正にやりたい」と思っている方には朗報です。
使い方の説明の前にこちらからエクセルVBA抽選ソフト【重複なし】をダウンロードしてください。
こちら↓でダウンロードすることが出来ます。
ただし、こちらの方はVBAコードを保護していますので、使う側でのVBAコードのカスタマイズを行うことはできません。
ここの記事説明とダウンロードしたソフトで、早々に利用していただくことが出来ます。
このソフトはご自分で業務でお使いいただくのはフリーですが、
転載や転売については許可しておりませんので、ご使用にならないよう固くお断りいたします。
配布ルールに従ってのご利用をお願いします。
もちろん4人程度の少人数からでも普通に抽選ソフトは動きます。
上記のような何万人というような大規模な抽選会にも対応できる設計・組み立てをしています。
重量系の配列変数などはほぼ使っていません(ちょっと使いました)ので、まずまず軽量に仕上がったかなと思っています。
平易なコードばかりを使っていますので、修正やカスタマイズしていただき易いと思います。
参加者100万人だとどうでしょうか。記事末でサンプルとして「参加者100万人で300人当選」にチャレンジしてみたいと思います。
エクセルVBA抽選ソフトの使い方
使い方について、ユーザーフォーム「当選者選定NAVIGATOR」(抽選ナビ)の説明を行っていきます。
ダウンロードと解凍
ダウンロードボタンをクリックして、落ちてきた圧縮ファイルを解凍してください。
解凍したフォルダにエクセルファイルが入っていますので、(ウイルスチェック後)ダブルクリックで開いてください。
操作はすべてユーザーフォームで行う
抽選の操作は、すべてユーザーフォーム「当選者選定NAVIGATOR」(抽選ナビ)で行います。
上から順に操作を進めて行きます。
抽選名称、参加人数など
「抽選名称」、「参加人数(口)」、「開催日時」
それぞれ、項目に入力してください。
当選確率の計算方法については、考え方がいろいろありますが、
「商店街の歳末大売り出しのガラガラ」と同じ考え方で、ここでは、
その人が2回抽選すると当選確率2倍、3回抽選だと確率3倍というルールに従います。つまり、その分参加人数(口数)を増やすことで対応してください。
抽選名称復旧 ボタン
ユーザーフォーム「選定ナビ」がリセットされると、入力してあった項目がすべて消去されます。
入力した項目がバックアップされていた場合は、
そのデータから「設定ナビ」の方へ入力データを戻します。
このボタンで、「抽選名称」、「参加人数(口)」、「開催日時」が復元されます。
抽選表SET ボタン
抽選表SETボタンは、参加人数(今回は3,587人) 1から3587までの数字を
縦と横、計算された方眼のマスに一つづつ数字を、無作為でランダムで、はめ込まれていきます。
つまり
このステップで、参加者は自分の番号で、方眼マスの中で無作為に場所取りを行うということです。
この3,587人分の方眼マスはタテ61行、ヨコ59列、マイナス12マスの設計になっています。
参加人数によって、ソフトの方で自動的に方眼マスの大きさが設定されます。
当選結果はこの参加者の番号(ID番号)で表示されます。
賞名など
賞名の項目を入力します。
「一位賞名」と「本数」、「二位賞名」と「本数」、「三位賞名」と「本数」、「四位賞名」と「本数」、「五位賞名」と「本数」、「六位賞名」と「本数」
設定している当選賞を入力します。未定部分は空白欄でもOKです。
当選本数が「空欄」の場合は自動的に0設定され、その賞についての後のボタン操作が無効になります。
賞名のテキストボックスは、デフォルトで「(仮)1位賞、(仮)2位賞、(仮)3位賞・・・」と入力されています。
空白にセットしても次のアクションで、デフォルトに戻るように設定されています。
抽選項目復旧 ボタン
ユーザーフォーム「選定ナビ」がリセットされると、入力してあった項目がすべて消去されます。(Excelの仕様です)
入力した項目がバックアップされていた場合は、
そのデータから「設定ナビ」の方へ入力データを戻します。
このボタンで、「1位賞名から6位賞名」、「1位の本数から6位の本数」が復元されます。
抽選項目復旧ボタンを押すと、メッセージボックスが開きます。
復元内容の選択が行えます。
この復元の前に一度でも「抽選項目更新」を行っていた場合は、
今まであった項目を復元するか、一つ前にあった項目を復元するかを選択できます。
復元後は、必ず「抽選項目更新」ボタンを押して項目を確定させてください。
抽選項目登録 ボタン
選定ナビに入力した抽選項目を変数に代入し、「抽選会場シート」に項目を表示します。
「抽選項目BUシート」に抽選項目の内容のバックアップを行います。
このバックアップが、「抽選項目復旧」のデータにも使われます。
「抽選会場シート」に項目を表示
「抽選項目BUシート」に内容のバックアップ
抽選項目更新 ボタン
抽選項目登録後に抽選内容を変更した場合に使用します。
一度決定した賞名を変更する
抽選を開始しています。
抽選途中で、都合により4位賞名「記念店長賞」を取りやめ「記念エリマネ賞」に変更することになりました。
4位賞名を「記念エリマネ賞」に変更して「抽選項目更新」ボタンをクリックします。
すべての表示が「記念エリマネ賞」に変更されました。
抽選途中だった「記念店長賞」はその後「記念エリマネ賞」として引き継がれます。
登録した賞名の一部を空欄にする
「飛躍ご支援賞」の賞名をとりあえず白紙に戻すので、項目欄を「空白」にしました。
「抽選項目更新」ボタンをクリックします。
「空白」でセットしましたが空白は認められずデフォルトの「(仮)5位賞」で仮登録されました。
抽選途中だった「飛躍ご支援賞」はその後「(仮)5位賞」として引き継がれます。
(仮)の賞名は、正式名が決定されたら項目更新をしておくことをお勧めします。
(仮)の付く賞名について
デフォルトの(仮)〇〇賞は、文字色がグレーになっていますが、
このソフトの設定で、「(仮)が付いている文字列」の賞名はグレー色になる設定にしています。
『ほぼ決まりだけどまだなので(仮)』という様なネーミングにすると、識別のためのグレー色にすることが出来ます。
抽選方法 各ボタン
各賞の抽選方法については、それぞれの賞単位でそれぞれに抽選を行います。
- 一回づつの単発抽選
- その賞の全ての本数を一度に抽選する連続抽選
を搭載しています。
また、
- 選定ナビで当選本数が0本の賞は抽選ボタンが無効になっています。
- 当選未決数が「0」になった賞は抽選ボタンが無効になります。
上級賞は、当選本数も少ない場合が多いので、
一度にその当選本数を抽選してパッと終わらせるのではなく、一本づつじっくり抽選するという方法をとることが出来ます。
逆に、末等賞は当選本数も多いので、一度にすべてパッと抽選できる連続抽選を行った方いいかもしれません。
イベント的に、
例えば当選10本の場合、はじめは場の空気を盛り上げるために、
一本づつ3本まで単発抽選を行って、
後は連続抽選で7本一度に行うということもできます。
抽選の公平性(無作為性)について
最初に参加人数分の番号札が、無作為に抽選表(方眼)に並べられます。Randomizeでパターン化を防御しています。
賞毎に抽選を行いますので、単発抽選を使えば、最大数「抽選表1回 +総当選本数 x 20回点滅」のRandomizeによる乱数発生で抽選を行えます。
この説明記事の例で言えば、【抽選表1回 + 総当選本数(120本)x 20回点滅】で最大2401回の乱数発生で抽選することが出来ます。
抽選結果を保存 ボタン
「抽選会場シートのA列B列C列」を「当選者シート」にコピー保存します。
イベントコントロール
重複メッセージ
このソフトは、何度も乱数を発生させて抽選していきます。
その中で、「重複当選」ということも発生してしまいます。
「重複当選」はこのソフトでは禁止項目ですので排除になりますが、
発生した時にメッセージを表示するかどうかを選択できるようにしています。
重複当選については、最初に当選した賞が優先されます。重複の中で選択することは出来ません。
上位賞から抽選して当選すれば、それ以降当選は排除されます。
逆に下位で当選すれば、それ以降上位で当選することはありません。
単発抽選
イベントとして抽選を見せるための表示オプションです。
抽選スピード
点滅回数が多くなるにつれて点滅スピードが遅くなります。
- 「L」・・・150ミリ秒x点滅回数
- 「M」・・・90ミリ秒x点滅回数
- 「H」・・・45ミリ秒x点滅回数
点滅回数
何回目の乱数発生で当選させるかを変更できます。
- 「L」・・・20回
- 「M」・・・10回
- 「H」・・・5回
連続抽選
乱数発生から次の乱数表示までのタイミングをコントロールします。
抽選スピード
- 「L」・・・300ミリ秒
- 「M」・・・200ミリ秒
- 「H」・・・100ミリ秒
強制初期化 ボタン
強制的にすべてのシートを初期化(デフォルト状態)にします。
保存しておきたいものは、別のエクセルBOOKに保存しなければなりません。
無料DL エクセルVBA 抽選ソフト使い方 のまとめ
エクセルVBA抽選ソフトのダウンロードとその使い方を説明してきました。
イベントなどでの抽選方法で苦心されている担当者の方も多いと思います。
何かの助けになればいいかなと思います。
参加人数については、ほんの少人数からウン十万人まで対応できると思います。
ご使用になる環境、特にパソコンスペックにも依存するところがありますので、
一律にどうとは言えませんが、一度、使用予定のPCで試してみてください。
自分の環境では、100万人参加はOKでしたが、300万人参加は「X」
300万人の抽選表が作成できませんでした。
64ビット環境の数値型(LongLong型)が使えないとだめなのでしょうかね?
100万人の抽選状況のプリントスクリーンはこんな感じです。
参加者100万人の抽選表のセットアップには、
シートがデフォルトの状態から始めて、「2分39秒」かかりました。
東京賞500人の連続抽選は、終了まで「3分8秒」
大阪賞100人の連続当選は、終了まで「1分37秒」かかりました。
抽選にかかる時間については、先の説明に書きました様に、
1抽選に付き100ミリ秒(Hモード)のタイムラグを作っていますので、
単なるスピード競争ではないことを承知おきください。
使用PCが8年前のスペックであることを考えるとこんなもんかなと思います。
エクセルVBA抽選ソフト作成1 乱数表(抽選表)の作り方へ進む→
エクセルVBAを独学を始めた人へ
自分も100%独学派で、エクセルVBAで業務効率を上げるために勉強をしてきました。
「この部分の定型作業を自動化しよう」と目的を作ってVBAを勉強してきました。
全くの自己流ですので、きれいなコード組み立てではない場合もあります。
でも安心してください。「本当におかしければ、動きませんから。」
エクセルVBAは柔軟性がありますから、文法が間違っていなければ動きます。
勉強を始められた方へ、自分の経験記事を書いています。勉強方法についてです。
参考にしてみてください。
エクセルVBAを独習するのに参考書は欠かせません。 参考書選びは自分に合った「相棒」にできるものを選んでいきたいです。
エクセルVBAの独習でおすすめ参考書を7冊選ぶ。良書との出会いは大切です
エクセルVBAの独習には動画学習という方法もあります。 目と耳両方を使って学習することでさらに勉強効率を上げることもできると思います。
エクセルVBA初級者がUdemyで動画学習する講座おすすめ5選と無料講座の上手な使い方。
今回の記事はここまでです。 最後までご覧いただき有難うございました。