【サンプルコードあり】Googleフォームで自動返信する方法を紹介!

【サンプルコードあり】Googleフォームで自動返信する方法を紹介!

Googleフォームには、回答コピーを送信する以外、自動返信メールを送信する機能がありません。Googleフォームの回答が送信された際に自動返信するには専用スクリプトを作成する必要があります。そこでこの記事では、Googleフォームで自動返信する方法を紹介していきます。


目次[非表示]

  1. Googleフォームで自動返信したい
  2. Googleフォームで自動返信出来ることのメリット
  3. Googleフォームで自動返信する方法
  4. Googleフォームで自動返信を使って問い合わせフォームを作ってみた
  5. まとめ

Googleフォームで自動返信したい

Googleフォームを使えば、簡単にアンケートやお問い合わせフォームを作成できます。

ですが、フォームに回答して送信したユーザーに対して自動返信する機能は用意されておらず、その場合は自動返信プログラムを自作する必要があります。

回答のコピーを送信することはできますが、「お問い合わせありがとうございます。担当者の方で確認後ご連絡いたしますので...」といったメッセージを添付することはできません。

そこで今回は、メッセージを自由にカスタマイズできる自動返信の作り方について解説していきます。

Googleフォームで自動返信出来ることのメリット

Googleフォームの自動返信でできることはメリットはたくさんあります。

ユーザーがちゃんと送信できているか確認できる

Googleフォームの送信後、フォームの回答が届いたことがわかるメールが送られてきたら、しっかり問い合わせが成功しているということをユーザーが確信することができます。

もし問い合わせが成功してるのかわからないと、同じ問い合わせが何度も来ることになったり、「無視されてるのかな?」とストレスを感じてしまいかねません。

返信を期待しているユーザーの不安を和らげられる

個別返信をしていないことを明記していないGoogleフォームでユーザーが問い合わせをした場合、ユーザーは返信が来ることを期待しています。

ですが、問い合わせ確認メールが届かないと

  • 何時頃返信が来るのか
  • 問い合わせはちゃんと見られているのだろうか
といった不安を感じることになります。

その不安がエスカレートして、
  • 〇〇のサポートは使えない
  • 問い合わせをしても無視される
といった口コミ拡散される可能性もあります。

ですが、自動返信メールに「○営業日以内に返信致します」といった記述があれば、ユーザーはその間は下手に急かさずに待ってくれます。

そのため、問い合わせからの自動返信メールは非常に重要なものなのです。

Googleフォームで自動返信する方法

それで早速Googleフォーム自動返信する方法を見ていきましょう。

編集画面
何でもいいので、有効なGoogleフォームを用意し、編集画面を開いておいてください。

次に[回答]へと移動し、スプレッドシートを作成します。既存のスプレッドシートを使うこともできますが、新規で作成することをお勧めします。

作成したスプレッドシートを開き、[ツール]->[スクリプトエディタ]
作成したスプレッドシートを開き、[ツール]->[スクリプトエディタ]へと進みます。

次に、編集画面右上の「︙」をクリックし、[スクリプトエディタ]を選択します。

ここからプログラミング作業になりますが、プログラミング経験がないと少しむずかしいかもしれません。ですが、出来る限り誰でも出来るような簡単なものにしていますので、プログラミング未経験者も参考にして頑張ってみてください。

AutoSendMail
プロジェクト名は変更しなくても大丈夫ですが、わかりやすいように「AutoSendMail」に変更しておきましょう。

初回のみ保存に時間がかかるので、ページをリロードせずに待つようにしてください。

まっさらな状態
コードエディタにある「function my...」を含む全てのテキストを一旦消して、まっさらな状態にしてください。

まっさらな状態にしたら以下のコードを貼り付けます。

function sendMailGoogleForm() {
 Logger.log('sendMailGoogleForm() debug start');

 //------------------------------------------------------------
 // 設定エリア
 //------------------------------------------------------------
 
 // 件名、本文、フッター
 var subject = "[お問い合わせありがとうございます。]"; 

//複数行入力したい
 var body
 = "お問い合わせありがとうございます。\n\n\
 各行の末尾に\を含めます\
 改行したい場合「\n」を記述します\
\
↑空行のときも「\」を忘れないように。\
 ";
 var footer
 = "------------------------------------------------------------\n\n\
 フッターテキストです。署名などの本文末尾に記述する文章はここに記載しましょう。\
 ";

 // 入力カラム名の指定
 var NAME_COL_NAME = "名前";
 var MAIL_COL_NAME = "メールアドレス";


 // メール送信先
 var admin = "example@sample.com"; // 管理者(必須)
 var sendername = "自動返信メール";//送信者名(必須)
 var cc = ""; // Cc:
 var bcc = admin; // Bcc:
 var reply = admin; // Reply-To:
 var to = ""; // To: (入力者のアドレスが自動で入ります)


 //------------------------------------------------------------
 // 設定エリアここまで
 //------------------------------------------------------------

 try{
 // スプレッドシートの操作
 var sheet = SpreadsheetApp.getActiveSheet();
 var rows = sheet.getLastRow();
 var cols = sheet.getLastColumn();
 var rg = sheet.getDataRange();
 Logger.log("rows="+rows+" cols="+cols);

 // メール件名・本文作成と送信先メールアドレス取得
 for (var i = 1; i <= cols; i++ ) {
 var col_name = rg.getCell(1, i).getValue(); // カラム名
 var col_value = rg.getCell(rows, i).getValue(); // 入力値
 body += "【"+col_name+"】\n";
 body += col_value + "\n\n";
 if ( col_name === NAME_COL_NAME ) {
 body = col_value+" 様\n\n"+body;
 }
 if ( col_name === MAIL_COL_NAME ) {
 to = col_value;
 }
 }
 body += footer;

 // 送信先オプション
 var options = {name: sendername};
 if ( cc ) options.cc = cc;
 if ( bcc ) options.bcc = bcc;
 if ( reply ) options.replyTo = reply;

 // メール送信
 if ( to ) {
 MailApp.sendEmail(to, subject, body, options);
 }else{
 MailApp.sendEmail(admin, "【失敗】Googleフォームにメールアドレスが指定されていません", body);
 }
 }catch(e){
 MailApp.sendEmail(admin, "【失敗】Googleフォームからメール送信中にエラーが発生", e.message);
 } 
}

1文字でも欠けたら正常に動作せずエラーになってしまいます。ですので、1文字も漏れがないようにしっかりコピーするようにしましょう。

コピーして貼り付けたら保存アイコンをクリックしてコードを保存
コピーして貼り付けたら保存アイコンをクリックしてコードを保存します。
「コード.js」の横にあった赤いマーク
保存が完了すると「コード.js」の横にあった赤いマークが消えるのでそれを目印にしましょう。

次に、Googleフォームが送信されたときに上記プログラムを動作させるためのトリガーを設定します。

保存アイコンの右にある時計アイコン
トリガーの設定は保存アイコンの右にある時計アイコンから行います。

クリックすると新しくトリガー設定ページが別タブで開かれます。

「新しいトリガーを作成します」をクリック
「新しいトリガーを作成します」をクリックします。
トリガー設定画面が表示されますが、「イベントの種類を選択」を「フォーム送信時」に変更して保存
トリガー設定画面が表示されますが、「イベントの種類を選択」を「フォーム送信時」に変更して保存します。
Googleアカウントログイン画面が表示
すると、Googleアカウントログイン画面が表示されるので、Googleフォーム作成に使用しているアカウントでログインしてください。
「このアプリは確認されていません」と表示
「このアプリは確認されていません」と表示されますが問題ありません。

一般公開用のGoogle審査を受けていないスクリプトは全てこの警告が表示されるので、個人利用において心配する必要はありません。

「〇〇(プロジェクト名)に移動」というリンクが表示
[詳細]をクリックすると「〇〇(プロジェクト名)に移動」というリンクが表示されるのでそれをクリックします。
Google機能をプログラムで使うための許可リクエストが表示
Google機能をプログラムで使うための許可リクエストが表示されますので、下までスクロールして[許可]を押しましょう。
トリガーが作成されて、トリガー一覧に表示
しばらく待つとトリガーが作成されて、トリガー一覧に表示されます。

これで自動返信メールを使えるGoogleフォームが出来上がりました。

試しに作成したGoogleフォームをプレビューし、自分でGoogleフォームに回答・自動返信の確認してみてください。

自動返信メール
デフォルトのままだとこのような自動返信メールが届きます。

必要に応じてメール本文やタイトルなどをカスタマイズするようにしましょう。

自動返信のカスタマイズ

スクリプトの書き方分かっている方であれば大丈夫ですが、全く分からないという方もいるでしょう。

やりたいこと別に修正場所をまとめましたので参考にしてください。

スクリプト上のテキストは全て「"(ダブルクォーテーション)」で囲む
ちなみに、スクリプト上のテキストは全て「"(ダブルクォーテーション)」で囲む必要があるので注意してください。
※半角です

件名

件名はサンプル9行目の「var subject...」のテキストを変更
件名はサンプル9行目の「var subject...」のテキストを変更します。

メール件名を変更したい場合は、ここのテキストをカスタマイズしましょう。

本文

メール本文は、本文とフッターで分けて記述できるようにしています。

本文はサンプル12行目の「var body...」のテキスト
本文はサンプル12行目の「var body...」のテキストです。フッターテキストはサンプル19行目の「var footer」のテキストを編集するようにしましょう。

記述ルールについてはサンプルコードに書いていますので、そちらを参考にしてください。

送信元

送信元名がデフォルトでは「自動返信メール」となっています。

サンプル31行目の「var sendername...」のテキスト
送信元名を変更したい場合は、サンプル31行目の「var sendername...」のテキストを変更してください。

Googleフォーム作成者にもメールで通知したい

サンプル30行名の「var admin...」のテキストを編集
この場合は、サンプル30行名の「var admin...」のテキストを編集してください。

デフォルトのままでは存在しないメールアドレスに対して送信しているため、Googleフォームで回答されるたびにエラー通知メールが届きます。

ですので、可能な限りサンプル30行目のメールアドレスは、所有している有効なメールアドレスを指定するようにしましょう。

Googleフォームで自動返信を使って問い合わせフォームを作ってみた

実際に作成した自動返信対応Googleフォームがこちらです。

適当に問い合わせるとここで紹介したサンプルコードと同じ自動返信メールが届きます。どういう風に自動返信メールが届くのか試したい方は、こちらのGoogleフォームに適当にお問い合わせください。

まとめ

今回はGoogleフォームを自動返信対応にする方法を紹介しました。

タイムスタンプにも対応しているので、時系列別にメールを並べ替えること可能なはずです。

回答のコピーを送信するだけでは不十分という方は、今回紹介したスクリプトを使って自動返信メールをカスタマイズしてみてください。

慣れるまで少しかかるかもしれませんが、万が一修正するところ間違えて治し方が分からなくなったとしても、再度サンプルコードをコピーして貼り付ければ元に戻せます。

自動返信プログラムで悩んでる方はぜひ参考にしてくださいね。


関連記事

キーワード一覧