GASでフォームのチェックボックス項目を自動追加!定期実行でアンケートを効率化
Google Apps Script(GAS)を使って、Googleフォームのチェックボックス項目を自動で追加する方法を解説します。特に、定期実行によるアンケートの効率化に焦点を当て、具体的なコード例とトラブルシューティングをご紹介します。
Form.addCheckboxItemとは
Form.addCheckboxItem()は、GASでGoogleフォームにチェックボックス項目を追加するためのメソッドです。このメソッドを使うことで、手動でフォームを編集する手間を省き、自動化されたワークフローを構築できます。
基本的な使い方
Form.addCheckboxItem(title)のように、引数にチェックボックス項目のタイトルを指定します。これにより、指定されたタイトルのチェックボックス項目がフォームに追加されます。
// フォームを開く
function addCheckbox() {
const form = FormApp.openById("YOUR_FORM_ID");
// チェックボックス項目を追加
const item = form.addCheckboxItem("ご希望のサービスを選択してください");
item.setChoices([
item.createChoice("サービスA"),
item.createChoice("サービスB"),
item.createChoice("サービスC")
]);
item.setRequired(true);
}
定期実行によるアンケート効率化
アンケートの回答選択肢が定期的に変わる場合、GASで自動化することで大幅な効率化が可能です。例えば、毎月更新される商品リストや、イベントの参加者を募る際に、選択肢を自動で更新できます。
実装例1:スプレッドシートから選択肢を読み込む
スプレッドシートに選択肢を記述し、GASで読み込んでフォームに設定する例です。これにより、スプレッドシートを編集するだけでフォームの選択肢を更新できます。
// スプレッドシートから選択肢を読み込む
function updateCheckboxOptions() {
const form = FormApp.openById("YOUR_FORM_ID");
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName("選択肢リスト");
const values = sheet.getDataRange().getValues();
// 最初の行はヘッダーとしてスキップ
values.shift();
// チェックボックス項目を取得(IDで指定)
const items = form.getItems();
let checkboxItem = null;
for (let i = 0; i < items.length; i++) {
if (items[i].getTitle() === "ご希望のサービスを選択してください") {
checkboxItem = items[i].asCheckboxItem();
break;
}
}
if (checkboxItem) {
// 選択肢をクリア
checkboxItem.setChoices([]);
// スプレッドシートから読み込んだ選択肢を追加
for (let i = 0; i < values.length; i++) {
const option = values[i][0];
checkboxItem.createChoice(option);
}
}
}
// トリガーを設定して定期実行
実装例2:日付に基づいて選択肢を動的に変更
日付に応じて異なる選択肢を表示する例です。例えば、曜日ごとに異なるメニューを表示するアンケートなどに利用できます。
// 日付に基づいて選択肢を変更する
function updateCheckboxOptionsByDate() {
const form = FormApp.openById("YOUR_FORM_ID");
const today = new Date();
const dayOfWeek = today.getDay(); // 0:日, 1:月, ..., 6:土
let options = [];
switch (dayOfWeek) {
case 0: // 日曜日
options = ["朝食", "ブランチ", "昼食"];
break;
case 1: // 月曜日
options = ["ランチ", "軽食", "夕食"];
break;
// 他の曜日も同様に設定
default:
options = ["ランチ", "夕食"];
}
// チェックボックス項目を取得(IDで指定)
const items = form.getItems();
let checkboxItem = null;
for (let i = 0; i < items.length; i++) {
if (items[i].getTitle() === "本日のメニューを選択してください") {
checkboxItem = items[i].asCheckboxItem();
break;
}
}
if (checkboxItem) {
// 選択肢をクリア
checkboxItem.setChoices([]);
// 新しい選択肢を追加
for (let i = 0; i < options.length; i++) {
checkboxItem.createChoice(options[i]);
}
}
}
// トリガーを設定して定期実行
よくある問題とトラブルシューティング
- フォームIDが間違っている:
FormApp.openById()に渡すフォームIDが正しいか確認してください。 - 権限の問題:スクリプトがフォームへのアクセス権を持っているか確認してください。
- 選択肢が更新されない:トリガーが正しく設定されているか、スクリプトの実行ログを確認してください。
カスタマイズ方法と応用例
- 選択肢の追加だけでなく削除も自動化:スプレッドシートの変更を検知して、フォームの選択肢を動的に更新できます。
- 複数項目の同時更新:複数のチェックボックス項目を一度に更新することで、より複雑なアンケートにも対応できます。
- エラーハンドリングの追加:エラーが発生した場合に、メールで通知する機能を追加することで、より安定したシステムを構築できます。
まとめ
GASのForm.addCheckboxItem()メソッドと定期実行を組み合わせることで、アンケートの選択肢を自動で更新し、大幅な効率化を実現できます。スプレッドシートとの連携や日付に基づいた選択肢の変更など、様々な応用が可能です。ぜひ、この記事を参考にして、GASを活用したアンケートの自動化に挑戦してみてください。
今回の記事では、Google Apps Script(GAS)を使用して、Googleフォームのチェックボックス項目を自動的に追加し、定期的なアンケートプロセスを効率化する方法について説明しました。この方法を活用することで、時間と労力を節約し、より正確なデータを収集できます。

CodeCampは、現役エンジニアからマンツーマンで学べるオンラインプログラミングスクールです。WebデザインやWebサービス開発、転職支援など、目的に合わせた多様なコースが選べます。
朝7時〜夜23時40分まで、365日レッスンが受けられるため、忙しい方でも自分のペースで学習を進めることが可能です。通過率8%の厳しい選考を通過した質の高い講師陣が、あなたのキャリアチェンジを強力にサポートします。
さらに、未経験者向けのカリキュラムや、学習開始から20日以内の全額返金保証制度もあるため、プログラミング学習に不安を感じている方でも安心して始めることができます。
CodeCampで理想の働き方を実現しよう