GAS TextItem.setRequiredでフォーム回答必須化!定期メール送信時の抜け漏れ防止
本記事では、Google Apps Script (GAS) の TextItem.setRequired
メソッドに焦点を当て、特に定期メール送信における情報収集の抜け漏れを防ぐための活用方法を解説します。GASを使って定期的にアンケートフォームを送信し、回答を収集する際に、必須項目を設定することで、回答の質を向上させ、業務効率を改善できます。
TextItem.setRequiredとは?
TextItem.setRequired(required)
は、Googleフォームのテキスト入力項目(TextItem
)に対して、回答を必須にするかどうかを設定するメソッドです。required
引数には、true
(必須)または false
(任意)のブール値を指定します。このメソッドを利用することで、回答者に必要な情報を確実に提供させることができます。
なぜTextItem.setRequiredが重要なのか?
定期メール送信による情報収集では、回答者に必要な情報を網羅的に入力してもらうことが重要です。TextItem.setRequired
を使用することで、必須項目への回答を促し、情報不足による手戻りを防ぐことができます。例えば、顧客からのフィードバック収集、従業員の業務報告、イベント参加者の情報収集など、様々なシーンで役立ちます。
定期メール送信における実装方法
GASでフォームを作成し、TextItem.setRequired
を設定して、定期的にメールを送信する具体的な手順を以下に示します。
1. フォームの作成
まず、Googleフォームを作成します。GASからフォームを操作するために、フォームIDを取得します。
// フォームID
const formId = "YOUR_FORM_ID";
2. フォームに質問項目を追加
フォームに質問項目を追加し、TextItem.setRequired
で必須項目を設定します。
function createForm() {
const form = FormApp.openById(formId);
// 名前入力項目(必須)
const nameItem = form.addTextItem("お名前");
nameItem.setRequired(true);
// メールアドレス入力項目(必須)
const emailItem = form.addTextItem("メールアドレス");
emailItem.setRequired(true);
// 部署入力項目(任意)
const departmentItem = form.addTextItem("部署名");
departmentItem.setRequired(false);
// 質問項目を追加...
}
3. 定期的なメール送信設定
GASのトリガー機能を使用して、フォームへの回答を促すメールを定期的に送信します。
function sendEmail() {
const form = FormApp.openById(formId);
const formUrl = form.getPublishedUrl();
const recipient = "example@example.com"; // 送信先メールアドレス
const subject = "【定期アンケート】ご協力のお願い";
const body = `アンケートにご協力をお願いいたします。
回答はこちら: ${formUrl}`;
MailApp.sendEmail(recipient, subject, body);
}
// トリガー設定の例(毎日午前9時に実行)
function createTimeDrivenTriggers() {
ScriptApp.newTrigger('sendEmail')
.timeBased()
.atHour(9)
.everyDays(1)
.create();
}
実用的なコード例
例1: 顧客満足度調査
顧客満足度を定期的に調査し、サービス改善に役立てる例です。
function createSatisfactionSurveyForm() {
const form = FormApp.create("顧客満足度調査");
// 顧客名(必須)
const customerName = form.addTextItem("顧客名");
customerName.setRequired(true);
// 評価(必須)
const satisfactionLevel = form.addMultipleChoiceItem("満足度");
satisfactionLevel.setChoices([
satisfactionLevel.createChoice("非常に満足"),
satisfactionLevel.createChoice("満足"),
satisfactionLevel.createChoice("普通"),
satisfactionLevel.createChoice("不満"),
satisfactionLevel.createChoice("非常に不満")
]);
satisfactionLevel.setRequired(true);
// コメント(任意)
const comment = form.addParagraphTextItem("コメント");
comment.setRequired(false);
Logger.log('フォームのURL: ' + form.getPublishedUrl());
}
例2: 従業員からの業務報告
従業員からの日報を収集し、業務進捗を把握する例です。
function createDailyReportForm() {
const form = FormApp.create("日報");
// 氏名(必須)
const employeeName = form.addTextItem("氏名");
employeeName.setRequired(true);
// 業務内容(必須)
const workDescription = form.addParagraphTextItem("業務内容");
workDescription.setRequired(true);
// 所感(任意)
const impressions = form.addParagraphTextItem("所感");
impressions.setRequired(false);
// 課題(任意)
const challenges = form.addParagraphTextItem("課題");
challenges.setRequired(false);
Logger.log('フォームのURL: ' + form.getPublishedUrl());
}
よくある問題とトラブルシューティング
問題1: 必須項目が未入力でも送信できてしまう
原因: フォーム側の設定が正しく反映されていない可能性があります。
解決策: フォームの設定を確認し、TextItem.setRequired(true)
が正しく設定されているか確認してください。また、ブラウザのキャッシュをクリアして、再度試してみてください。
問題2: 回答が必須項目にも関わらず空欄で記録される
原因: GASの処理で誤って空の値が送信されている可能性があります。
解決策: GASのコードを見直し、フォームに値を送信する前に、値が空でないことを確認する処理を追加してください。
カスタマイズ方法と応用例
条件付き必須項目
特定の条件を満たす場合にのみ、項目を必須にするには、FormResponse
オブジェクトと ItemResponse
オブジェクトを使用して、回答内容に応じて必須項目を動的に変更できます。
// 回答内容に応じて必須項目を変更する例
function onChange() {
const form = FormApp.getActiveForm();
form.setTitle("フォームのタイトル");
const items = form.getItems();
// 質問の追加
const itemName = form.addTextItem("お名前を入力してください");
itemName.setRequired(true);
// 選択式の質問
const itemFood = form.addMultipleChoiceItem()
.setTitle("好きな食べ物を選んでください")
.setChoiceValues(["寿司", "ラーメン", "焼肉"])
.setRequired(true);
// 回答に応じて表示を変える質問
const itemMessage = form.addTextItem("好きな食べ物の良いところを教えてください");
//回答の編集を許可
form.setAllowResponseEdits(true);
}
回答内容に応じたメール送信
フォームの回答内容に応じて、異なるメールを送信することができます。例えば、特定のキーワードが含まれている場合に、担当者に通知するなどが可能です。
まとめ
TextItem.setRequired
を活用することで、Googleフォームを使用した情報収集の質を向上させ、定期メール送信における情報収集の抜け漏れを防ぐことができます。顧客満足度調査や従業員の業務報告など、様々なシーンで活用し、業務効率を改善しましょう。
CodeCampは、現役エンジニアからマンツーマンで学べるオンラインプログラミングスクールです。WebデザインやWebサービス開発、転職支援など、目的に合わせた多様なコースが選べます。
朝7時〜夜23時40分まで、365日レッスンが受けられるため、忙しい方でも自分のペースで学習を進めることが可能です。通過率8%の厳しい選考を通過した質の高い講師陣が、あなたのキャリアチェンジを強力にサポートします。
さらに、未経験者向けのカリキュラムや、学習開始から20日以内の全額返金保証制度もあるため、プログラミング学習に不安を感じている方でも安心して始めることができます。
CodeCampで理想の働き方を実現しよう