Googleフォームが新しくなったので、作成方法を新しく作成しなおしました。
今回は下記のようなフォームを作成します。
まずは、問合せフォームに必要なもの。
以下の3つがGoogleフォームで自動返信を行う際に必要になります。一つずつ説明していきます。
- 質問項目
- 回答の格納場所
- 問合せありがとうメール(自動返信 コピペでOK)
質問項目を作成
まずはgoogleにログインして、Googleドライブ >作成 >フォームをクリック。
名前の項目作成
最初に質問があるので、質問項目にテキストを記入します。
右のプルダウンから、回答の形式を選択肢ます。
今回は名前と記述し、記述式(短文回答)を選択します。
必須項目としたい場合は、必須のボタンを有効にします。
メールアドレスの作成
次右側の+ボタンをクリックし、質問を追加します。
メールアドレスと記載し、回答の形式は記述式(短文回答)を選択します。
右下の … をクリックし、データの検証で、メールアドレスが正しい形式かどうか検証が可能です。
テキストを選択し、メールアドレスを選択すればOKです。メールアドレスが正しく無かった場合のアラートも可能です。
アラートは今回、メールアドレスに誤りがあります。としています。
問合せ内容の作成
右側の+ボタンをクリック項目を追加します。
問合せ内容と記入し、回答形式は段落を選択します。
回答の格納場所を作成
タブの回答を選択します。右側の緑の+ボタン(スプレッドシート追加ボタン)をクリックします。
新しいスプレッドシートを選択にチェックをいれ、作成をクリックします。
Googleフォームから自動返信( コピペでOK)
回答用のスプレッドシートを開き、ツール > スクリプトエディタ を選択。
スクリプトエディタで自動返信プログラムを作成
プロジェクト名は何でもOKです。今回は AutoSendMail としています。
2つめの赤く囲った部分に、下記のコードを上書きすればOKです。
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 = "admin@example.com"; // 管理者(必須) var sendername = "web担当者備忘録";//送信者名(必須) 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); } }
コピペが完了したら、フロッピーアイコンをクリックして保存します。
次に、時計のアイコンをクリックします。
先ほどコピペした、スクリプトの発動タイミングをしていします。
スクリプトの発動タイミングを指定。スプレッドシートからを選択肢、フォーム送信時を選択肢保存します。
保存すると、以下の承認確認が出ますので、承認を確認 を選択します。
次に許可のリクエストがされるので、許可 を選択します。
以上で、フォームから入力があれば、下記のような返信が自動でユーザーに届きます。
実際の自動返信メール
メールの送信元はスクリプト製作者のGoogleアカウントからになるため、送信メールアドレスを変えたい場合は1手間必要になります。
方法はこちらに記載しました。
タイムスタンプを入れたくない場合は以下のスクリプトを body += “【”+col_name+”】\n”; 前に 入れればOKです。
// メール件名・本文作成と送信先メールアドレス取得 for (var i = 1; i <= cols; i++ ) { var col_name = rg.getCell(1, i).getValue(); // カラム名 var col_value = rg.getCell(rows, i).getValue(); // 入力値 ////////////下記を入れる//////////////// if (col_name === "タイムスタンプ"){ continue; } ////////////////上記を入れる//////////// body += "【"+col_name+"】\n"; body += col_value + "\n\n"; if ( col_name === NAME_COL_NAME ) { body = col_value+" 様\n\n"+body; }
フォーム送信後の簡素な画面をカスタムする
デフォルトのサンクス画面は以下のように非常に簡素なものです。
このサンクス画面の編集には、フォーム右上のギアアイコンをクリックすると以下の画面がでるので、赤く囲っている部分を修正します。
以上のように修正すると、下記のサンクス画面が表示されるようになります。
コメント