30分で作れる!セミナー受付がラクになる自動システム (4/4)
2014年04月16日 11時00分更新
参加者チェックシートを自動生成する
セミナー当日に必要なものに、来場した参加者のチェックシートがあります。せっかくGoogleスプレッドシートにフォームで送信された情報がまとまっているのですから、そのデータを利用してチェックシートを自動生成するスクリプトも作ってみましょう。
リスト5をスプレッドシートのスクリプトエディタに追記してください。「☆スプレッドシートのID☆」には、それぞれのGoogleスプレッドシートのIDを記述します。また「☆メールアドレス☆」には、あなたのメールアドレスを指定してください。
作成後、先ほどのreminderと同様に、セミナー当日に実行するようにトリガーを追加しておきます。この場合は「実行」に「createCheckSheet」を選び、そのほかの項目はreminderとまったく同じに設定します(時間主導型/特定の日時/2014-07-07 07:00)。これで、当日になると出席者チェック用のシートを自動生成し、管理者にメールを送信します。
リスト5
function createCheckSheet() {
var sheetId = '☆スプレッドシートのID☆';
var spreadsheet = SpreadsheetApp.openById(sheetId);
var sheet = spreadsheet.getSheets()[0];
var newsheet = spreadsheet.insertSheet('チェックシート');
newsheet.getRange(1, 1).setValue('お名前');
newsheet.getRange(1, 2).setValue('参加/不参加');
var rowcount = sheet.getLastRow();
var range = sheet.getRange(2, 4, rowcount);
var rw = range.getNumRows();
var cl = range.getNumColumns();
var datas = range.getValues();
datas.sort();
var count = 2;
for(var i = 0;i <= datas.length;i++){
if (datas[i] == undefined){ break; }
if (datas[i][0] == ''){ continue; }
newsheet.getRange(count, 1).setValue(datas[i][0]);
var rule = SpreadsheetApp.newDataValidation().requireValueInList(['出席','欠席']).build();
newsheet.getRange(count, 2).setDataValidation(rule);
count++;
}
var message = '<html><body><p>※本日のセミナー用参加者'
+ '※<a href="' + spreadsheet.getUrl() + '">チェックシート</a>を作成しました。'
+ '</p></body></html>';
MailApp.sendEmail({
to: '☆メールアドレス☆',
subject: 'セミナー参加者チェックシート',
htmlBody: message
});
}
変数namecolumnで参加者の名前が記述されている列の番号を指定してあります。オリジナルのフォームで利用する場合は、この数字を調整して使ってください。
このスクリプトでは、セミナー申し込みスプレッドシートに「チェックシート」というシートを作成し、そこにABC順に並べ替えた参加者名の一覧と、参加・不参加のチェック用の項目を用意します。チェック項目では、セルの右端をクリックすると、「参加」「不参加」のポップアップリストが現れるので、項目を選ぶだけで入力できます。
◆
今回は、マップ付きメールとリマインダーメールを送信し、受講者のチェック用シートを自動生成するシステムを作ってみました。次回は、GASを使ったアンケートシステムを紹介します。