GoogleAppsScript

Googleスプレッドシートで簡単抽選!ランダム抽選方法【GAS】

Google Apps Script(GAS)を使って、Googleスプレッドシート上で応募者の中からランダムに当選者を抽選する方法を紹介します。

このシステムは、プレゼント企画やアンケート結果の抽選などに便利です。

GASを初めて触る方でも簡単に利用できるように、無料のサンプルのスプレッドシートを共有しています。

最後にスクリプトの解説もしておりますので、GASを学習中の方にもおすすめの内容です。

こんな方におすすめ!

  • GAS初心者でプログラムを書いたことがない方
  • 無料で使える便利な抽選システムを探している方
  • GAS学習中の方

ランダム抽選シートの紹介

このシステムでは、以下のような機能を実装しています。

  1. ランダムな抽選機能:スプレッドシートに登録された応募者の中からランダムに当選者を選びます。
  2. メッセージボックス表示:当選者の名前とメールアドレスを表示するメッセージボックスをポップアップさせます。

情報を入力して実行するだけで

当選結果が確認できます!

ランダム抽選シートを無料共有しています

このシステムはGASを使用しており、完全に無料で利用できます。

また、GASの学習をしている方向けに、サンプルのスプレッドシートを共有しています。

複製するだけで、誰でも簡単に使用できますので、下記のURLよりご確認ください。

【GASコピ!】ランダム抽選 – Google スプレッドシート

ランダム抽選シートのコピー方法

1.「ファイル>コピーを作成」を選択します

2. 「スプレッドシートの保存先のフォルダを選択>コピーを作成」を選択します

「添付されているAppsScriptファイル」は変更せずにそのままコピーしてください。

ランダム抽選シートの承認手続き

1. スクリプト起動のための承認作業を行います

2. ポップアップが表示されたら、続行を選択

3. 次のポップアップが表示されたら、あなたのGoogleアカウントを選択してください

4. 次のポップアップが表示されたら、「詳細」をクリックしてください

※「安全なページに戻る」を押すと承認作業が終了してしまうので、クリックしないようにご注意ください

5. ポップアップの下部に「(安全ではないページ)に移動」が表示されたら、クリックしてください

6. 次のポップアップが表示されたら、「許可」をクリックしてください

これで承認手続きは完了です。

ランダム抽選シートの使い方

ランダム抽選シートの使い方の手順

  1. シートに情報を入力
  2. 抽選を実行する
  3. 当選者を確認する

シートに情報を入力

複製したスプレッドシートに抽選者の情報を入力します。

以下のようなテーブルに、必要なだけ抽選者の情報を登録してください。

応募者名メールアドレス
田中太郎t.tanaka@example.com
山田花子y.yamada@example.com
佐藤次郎j.sato@example.com

抽選を実行する

スプレッドシートに「GASコピ!」というメニューが表示されます。そこから「実行する」を選択すると、抽選が実行されます。

当選者を確認する

抽選が終わると、当選者の名前とメールアドレスがメッセージボックスで表示されます。

以上で、すべての処理について解説いたしました。

誰でも非常に簡単に使える機能ですので、ぜひご活用ください!

ランダム抽選のスクリプトの解説

このスクリプトは、Google Apps Script(GAS)を使用して、スプレッドシートのデータからランダムに1つの行を抽選し、当選者の名前とメールアドレスを表示する機能を実現します。以下に、スクリプトの主な処理について解説します。

以下は、GASでランダム抽選を行うスクリプトのサンプルです。

function randomDraw() {
  const sheet = SpreadsheetApp.getActiveSheet();
  const dataRange = sheet.getDataRange();
  const data = dataRange.getValues();

  // ヘッダーを除くため1行目をスキップ
  const startIndex = 1;

  // ランダムなインデックスを取得
  const randomIndex = Math.floor(Math.random() * (data.length - startIndex)) + startIndex;

  const [winnerName, winnerEmail] = data[randomIndex];

  // 抽選結果をメッセージボックスで表示
  const message = `抽選の結果、当選者は以下の方です。\n\n名前:${winnerName}\nメールアドレス:${winnerEmail}`;
  SpreadsheetApp.getUi().alert("抽選結果", message, SpreadsheetApp.getUi().ButtonSet.OK);
}

function onOpen() {
  const ui = SpreadsheetApp.getUi();
  ui.createMenu('GASコピ!')
    .addItem('実行する', 'randomDraw')
    .addToUi();
}

1. データの取得とランダムなインデックスの生成

const sheet = SpreadsheetApp.getActiveSheet();
const dataRange = sheet.getDataRange();
const data = dataRange.getValues();
const startIndex = 1;

const randomIndex = Math.floor(Math.random() * (data.length - startIndex)) + startIndex;

スクリプトの最初の部分では、現在のアクティブなシートを取得し、データの範囲を取得しています。getValues()を使ってシートのデータを2次元配列として取得します。

startIndexはヘッダーを除くために1行目をスキップするためのインデックスです。

次に、Math.random()を使って0以上1未満のランダムな数値を生成し、これをデータの長さ(行数)に掛けて整数に変換してランダムなインデックスを取得します。

2. 当選者の名前とメールアドレスの取得(分割代入を利用)

const [winnerName, winnerEmail] = data[randomIndex];

ランダムに抽選された行のデータを取得して、当選者の名前とメールアドレスを分割代入を使って変数に代入します。

データの2次元配列において、当選者の名前が0列目、メールアドレスが1列目にあると仮定しています。このように、分割代入を使用することで、コードがより簡潔になります。

3. 抽選結果の表示(テンプレートリテラルを利用)

const message = `抽選の結果、当選者は以下の方です。\n\n名前:${winnerName}\nメールアドレス:${winnerEmail}`;
SpreadsheetApp.getUi().alert("抽選結果", message, SpreadsheetApp.getUi().ButtonSet.OK);

当選者の名前とメールアドレスをメッセージボックスで表示するためのメッセージをテンプレートリテラルを使って作成しています。

テンプレートリテラルを使うことで、文字列の連結が簡単に行えます。

4. メニューの追加

function onOpen() {
  const ui = SpreadsheetApp.getUi();
  ui.createMenu('GASコピ!')
    .addItem('実行する', 'randomDraw')
    .addToUi();
}

スクリプトの最後には、メニューの追加が行われています。

ユーザーがスプレッドシートのメニューから「実行する」というオプションを選択することで、抽選を手動で実行することができます。

このように、スクリプトはスプレッドシートのデータを利用してランダムな抽選を行い、当選者の名前とメールアドレスをユーザーに通知する便利な機能となっております。

最後に

GASを使ったランダム抽選システムを紹介しました。

無料で利用できるため、プレゼント企画やアンケート結果の抽選にぜひお試しください。

初心者向けに解説していますが、プログラムを書いたことがない方でも簡単に利用できるはずです。

ぜひ試してみてください!