簡単ステップ!Googleフォームで自動返信をGASで設定する方法

Googleフォームを使ってGASで自動返信設定する方法を知りたいんだけど、何から始めればいいのかな…
猫男
猫男
catman
catman
よし、catmanが「GASでGoogleフォームの自動返信」を設定する方法を伝授しよう!まずは基本からだ。

GoogleフォームとGASの連携の基本

Googleフォームでの入力データに対して、自動的にメールを返信したいなら、フォームとGoogleスプレッドシートを連携させ、GASでスクリプトを作成する必要がある。

フォームとスプレッドシートの連携手順

Googleフォームを作成すると、自動的にレスポンスを受け取るスプレッドシートを設定できる。フォームの設定からスプレッドシートにリンクさせよう。

スプレッドシートには、回答が自動的に反映される列が生成される。

GASで自動返信メールを設定するステップ

まずは、スプレッドシートのGASエディタを開いて、新しいスクリプトを作成しよう。これで自動返信メールの準備ができる。

 function sendAutoReply(e) {
 const emailAddress = e.values[1]; // フォームの2番目の質問をメールアドレスとして取得
 const subject = "ご回答ありがとうございました";
 const message = "あなたのご回答を受け付けました。詳細は後日ご連絡いたします。";
 MailApp.sendEmail(emailAddress, subject, message);
} 

ここでは、e.values[1]がフォームの入力からメールアドレスを取得し、MailApp.sendEmail()で自動返信のメールを送信する。

トリガーで自動実行を設定

スクリプトを自動で実行するためには、トリガーを設定する。

トリガーを設定する手順

スクリプトエディタの「時計アイコン」からトリガー画面にアクセスし、新しいトリガーを追加して、フォームが送信されたときにスクリプトが実行されるように設定しよう。

トリガーの種類は「フォーム送信時」で設定するのがポイントだ。

これでGoogleフォームから自動返信ができるのか!なんだか未来的だね!
猫男
猫男

練習問題

以下のスクリプトを完成させて、特定のキーワードを含む場合のみ自動返信するようにしてみよう。

 function sendKeywordReply(e) {
 const emailAddress = e.values[1];
 const responseText = e.values[2];
 const keyword = "特定のキーワード"; // ここに特定のキーワードを設定
 if (responseText.includes(keyword)) {
 const subject = "キーワードを含むご回答を確認しました";
 const message = "<特定のキーワード>を含む回答を確認しました。";
 MailApp.sendEmail(emailAddress, subject, message);
 }
} 

  

解答・解説

 // 完成したスクリプトは以下の通り
 function sendKeywordReply(e) {
 const emailAddress = e.values[1];
 const responseText = e.values[2]; // フォームの3番目に回答テキストがあると仮定
 const keyword = "GAS"; // 特定のキーワードを「GAS」と設定
 if (responseText.includes(keyword)) { // includes() メソッドでキーワードを探す
 const subject = "GASを含むご回答を確認しました";
 const message = "GASを含む回答を確認しました。ありがとうございます!"; // 発見時のメッセージ
 MailApp.sendEmail(emailAddress, subject, message);
 }
} 

includes()メソッドを使用して、スクリプトが回答テキストに特定のキーワードを探し出すようにし、条件を満たした場合にのみMailApp.sendEmail()関数を使ってメールを送信する。