こんにちは!
タダケン(@tadaken3)です。
「自動返信機能付きお問い合わせフォーム」を作ってみようシリーズの第二弾です。前回はフォームの入力画面とスプレッドシートの連携部分を作成しました。
今回は、スプレッドシート側のGoogle Apps Scriptで、自動返信機能を作っていきましょう。Google Apps Scriptでは、フォームの送信やセルの編集、タイマー設定などをトリガーにスクリプトを実行することができます。フォームの送信をトリガーにして、お問い合わせフォームに登録されたメールに対して、登録内容の自動返信する機能を作っていきます。
自動返信メールがあることで、お問合わせをしてくた人に対して、きちんと登録が完了したことをお伝えすることができます。
フォームからスプレッドシートに入力された情報を取得する
フォームから入力されたデータはスプレッドシートの最終行に追加されていきます。なので、最終行のデータからメールアドレスやお名前などの登録情報取得していきましょう。
Google Apps Scriptでアクティブなシートを取得するには、SpreadsheetAppにgetActiveSheetメソッドを実行します。
書き方は
です。
登録情報を取得するには、getRangeメソッドとgetValueメソッドを使います。sheetオブジェクトに対して、getRangeメソッドで行・列の位置を指定してgetValueメソッドでセルの値を取得します。
このように書きます。
データは最終行に追加されるので、最終行の情報も取得しましょう。シートの最終行は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メソッドを実行します。
書き方は
です。
メール送信について、詳しく知りたい場合は以下の記事も参考にしてみてください。
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アカウントのフォローをお願い致します。