初心者でもできる!Googleフォームで作成したお問い合わせフォームにGASで自動返信機能を追加する



こんにちは!
タダケン(@tadaken3)です。

「自動返信機能付きお問い合わせフォーム」を作ってみようシリーズの第二弾です。前回はフォームの入力画面とスプレッドシートの連携部分を作成しました。

無料で簡単!Googleフォームで「お問い合わせフォーム」を作成する
Googleフォームで、「お問い合わせフォーム」を簡単に作成する方法をお伝えします。「お問い合わせ」「資料請求」などの入力フォーム画面を作ることができます。自分で作成すれば無料ですし、カスタマイズも可能になります。

今回は、スプレッドシート側のGoogle Apps Scriptで、自動返信機能を作っていきましょう。Google Apps Scriptでは、フォームの送信やセルの編集、タイマー設定などをトリガーにスクリプトを実行することができます。フォームの送信をトリガーにして、お問い合わせフォームに登録されたメールに対して、登録内容の自動返信する機能を作っていきます。

自動返信メールがあることで、お問合わせをしてくた人に対して、きちんと登録が完了したことをお伝えすることができます。

スポンサーリンク

フォームからスプレッドシートに入力された情報を取得する

フォームから入力されたデータはスプレッドシートの最終行に追加されていきます。なので、最終行のデータからメールアドレスやお名前などの登録情報取得していきましょう。

Google Apps Scriptでアクティブなシートを取得するには、SpreadsheetAppにgetActiveSheetメソッドを実行します。

書き方は

SpreadsheetApp.getActiveSheet();

です。

登録情報を取得するには、getRangeメソッドとgetValueメソッドを使います。sheetオブジェクトに対して、getRangeメソッドで行・列の位置を指定してgetValueメソッドでセルの値を取得します。

このように書きます。

Sheetオブジェクト.getRange(行番号,列番号).getValue();

データは最終行に追加されるので、最終行の情報も取得しましょう。シートの最終行はgetLastRowメソッドで取得します。

書き方は

Sheetオブジェクト.getLastRow();

です。

getLastRowメソッドでの値をrowという変数にいれておきます。
実際のコードはこのようになります。

function autoReply() {
 var sheet = SpreadsheetApp.getActiveSheet();//スプレッドシートを取得
 var row = sheet.getLastRow();//最終行を取得
 var name     = sheet.getRange(row, 2).getValue();//2列目、最終行のセルの値を取得。つまりお名前欄のデータを取得します。
 var mail     = sheet.getRange(row, 3).getValue();//以下同様に、必要なデータを取得します。
 var item     = sheet.getRange(row, 4).getValue();
 var contents = sheet.getRange(row, 5).getValue();

取得した内容をもとにメール文面を作成する

今回は取得した内容を元にメール文案を作成してきましょう。
「n」は改行になります。

メールを送信するにはGmailAppにsendEmailメソッドを実行します。

書き方は

GmailApp.sendEmail(送信先アドレス, 件名, 本文, オプション)

です。

メール送信について、詳しく知りたい場合は以下の記事も参考にしてみてください。

初心者でも簡単!Google Apps ScriptでGmailを操作してメールを送る方法
Google Apps Scriptでメールマガジンを送るシステムを作りたいと思います。シリーズ初回の今回は、Google Apps ScriptでGmailを操作してメールを送る方法です。
function autoReply() {
 var sheet = SpreadsheetApp.getActiveSheet();
 var row = sheet.getLastRow();
 var name     = sheet.getRange(row, 2).getValue();
 var mail     = sheet.getRange(row, 3).getValue();
 var item     = sheet.getRange(row, 4).getValue();
 var contents = sheet.getRange(row, 5).getValue();

 var title = "お問い合わせありがとうございます。";//メールタイトル
 
 //メール本文を作成
 var mail_body
 = "お問い合わせありがとうございます。n"
 +"下記のとおりお問い合わせを受け付けました。nn"
 + "--------------------------------------n"
 + "○お名前n"
 + name + "nn"
 + "○ご連絡先メールアドレスn"
 + mail + "nn"
 + "○お問い合わせ項目n"
 + item + "nn"
 + "○お問い合わせ内容n"
 + contents + "nn"
 + "---------------------------------------nn"
 + "確認後、返信させていただきます";

 GmailApp.sendEmail(mail,title,mail_body);//メール送信

実行するとフォームで入力されたメールアドレスに対して、以下のメールが送られます。

フォーム送信をトリガーに設定する

では、スクリプトの実行をフォームの送信と紐付けていきます。
トリガー設定するには、メニューバーにある時計マークをクリックします。

autoReplyファンクションを選んで、イベントを「スプレッドシートから」「フォーム送信時」に変更しましょう。

これで、フォーム送信をトリガーにメールが自動で返信されます。
フォームに入力して試してみてください。

まとめ

Google Apps Scriptでフォーム送信をトリガーに自動返信する機能を実装しました。

今回は

  • スプレッドシートからセルの値の取得方法
  • Google Apps Scriptでのメール送信する方法
  • 「フォームの送信」をトリガーにスクリプトを起動する法

を実行する方法を学びましたね。ひとつひとつは、基本的な内容ではあるのですが、これらを組み合わせることで、様々機能を実装することができようになります。ぜひ、あなたなりの機能開発にもチャレンジしてみください。

次回は、問い合わせがあったらチャットワークに通知する機能を実装してきましょう。

どうぞ、お楽しみに!

よろしければ、こちらからTwitterアカウントのフォローをお願い致します。

連載目次:GoogleフォームとGASで簡単に作る問い合わせフォーム

問い合わせフォーム…GoogleフォームとGoogle Apps Scriptを使えば簡単に自作することができます。しかも無料! 本シリーズでは、その作り方と便利機能についてお伝えします。
  1. 無料で簡単!Googleフォームで「お問い合わせフォーム」を作成する
  2. 初心者でもできる!Googleフォームで作成したお問い合わせフォームにGASで自動返信機能を追加する
  3. 問い合わせを見のがさない!Googleフォームの問い合わせをチャットワークに通知する方法

タイトルとURLをコピーしました