GASでフォームのチェックボックスを取得する方法と活用例


GASでフォームのチェックボックスを取得する基本
GASを使えば、Googleフォームのデータを簡単に扱えるぞ。
チェックボックスの項目を特定する
最初に、フォームの中でチェックボックスがどの位置にあるのか特定しよう。
フォームの各項目にはインデックスが振られるので、それを使って識別する。
var form = FormApp.openById('YOUR_FORM_ID');
var items = form.getItems();
var checkBoxItem = items[1].asCheckboxItem(); // ここでチェックボックスを取得
このスクリプトはGoogleフォームをオープンし、そのアイテムのリストを取得。
その後、指定したインデックス(この例では2番目のアイテム)をチェックボックスとして取得する。
専用の操作メソッドを使うために asCheckboxItem() で型変換しているんだ。
これにより、チェックボックスに特化したメソッドを使えるようになるぞ。
チェックボックスの選択を取得する
フォームが提出された後、提出されたデータからチェックボックスの選択を抽出する方法を見てみよう。
var responses = form.getResponses();
for (var i = 0; i < responses.length; i++) {
var response = responses[i];
var itemResponses = response.getItemResponses();
var checkboxResponse = itemResponses[1].getResponse(); // 指定したインデックスの反応を取得
Logger.log(checkboxResponse);
}
このコードは全てのフォームの回答を取得し、それぞれについてチェックボックスの選択をログに出力している。
GASでフォームのチェックボックスを活用する方法
チェックボックスを取得したら、次はそのデータをどう活用するかだ。GASで行える分析や処理についていくつかのアイディアを紹介しよう。
集計データをスプレッドシートに記録する
GASを使って、フォームから取得したチェックボックスのデータをスプレッドシートに書き込むことができる。これにより、後から集計や分析をしやすくなる。
var spreadsheet = SpreadsheetApp.openById('YOUR_SPREADSHEET_ID');
var sheet = spreadsheet.getActiveSheet();
var checkboxData = responses.map(function(response) {
return response.getItemResponses()[1].getResponse();
});
sheet.appendRow(checkboxData);
このスクリプトは各回答のチェックボックスの選択をスプレッドシートに追記するものだ。
条件に応じたメール通知を送る
特定のチェックボックス項目が選ばれた際に、アラートメールを送信することも可能だ。GASを使って自動化することで、フォーム回答のリアルタイム管理が可能となる。
var checkboxResponse = itemResponses[1].getResponse();
if (checkboxResponse.indexOf('特定の項目') > -1) {
MailApp.sendEmail('example@domain.com', '通知', '特定の項目が選択されました');
}
このコードは、特定の条件に合致する回答が提出された場合にメールを送信する。
練習問題
1. GASを用いてGoogleフォームの2番目と3番目のチェックボックスの選択を取得し、それをコンソールに出力するスクリプトを書いてみよう。
解答・解説
var form = FormApp.openById('YOUR_FORM_ID');
var responses = form.getResponses();
responses.forEach(function(response) {
var itemResponses = response.getItemResponses();
var secondCheckboxResponse = itemResponses[1].getResponse();
var thirdCheckboxResponse = itemResponses[2].getResponse();
Logger.log('2番目のチェックボックス: ' + secondCheckboxResponse);
Logger.log('3番目のチェックボックス: ' + thirdCheckboxResponse);
});
スクリプトは最初にフォームを開く。その後、全ての回答を取得し、各回答について2番目と3番目のチェックボックスの選択を取得してコンソールに出力する。getItemResponses() メソッドは各回答アイテムのレスポンスを取得し、getResponse() メソッドは実際の回答を返す。

