Google/スプレットシート/問い合わせフォーム作成
提供: 初心者エンジニアの簡易メモ
目次
準備
Googleアカウントを作成
Googleドライブにアクセス
スプレットシート作成
新規/Googleスプレットシートで作成
フォーム作成
挿入/フォーム作成を選択
フォームの入力項目作成
フォーム編集画面の下のアイテム追加から項目を選択
以下を入力
質問のタイトル:メールアドレス 質問のタイプ:テキスト 質問のタイトル:お名前 質問のタイプ:テキスト 質問のタイプ:問い合わせ内容 質問のタイプ:段落テキスト
フォームを使って見る
フォーム編集画面/実際のフォームを見るを選択
回答後に回答者と管理者メールを送る
- スプレットシート/ツール/スクリプトエディタを選択
- myfunction(){}を削除して以下をコピーペーストして保存する
function sendMailFromForm() { Logger.log('sendMailFromForm() debug start'); //------------------------------------------------------------ // 設定エリアここから //------------------------------------------------------------ // 件名、本文、フッター var subject = "[お問い合わせ]"; var body = "お問い合わせありがとうございます。\n\n" + "------------------------------------------------------------\n"; var footer = "------------------------------------------------------------\n\n" + "後ほど担当者よりご連絡させていただきます。"; // 入力カラム名の指定 var NAME_COL_NAME = 'お名前'; var MAIL_COL_NAME = 'メールアドレス'; var SUBJ_COL_NAME = '件名'; // メール送信先 var admin = "送信先@gmail.com"; // 管理者(必須) var cc = ""; // Cc: var bcc = admin; // Bcc: var reply = admin; // Reply-To: var to = ""; // To: (入力者のアドレスが自動で入ります) //------------------------------------------------------------ // 設定エリアここまで //------------------------------------------------------------ try{ // スプレッドシートの操作 var sh = SpreadsheetApp.getActiveSheet(); var rows = sh.getLastRow(); var cols = sh.getLastColumn(); var rg = sh.getDataRange(); Logger.log("rows="+rows+" cols="+cols); // メール件名・本文作成と送信先メールアドレス取得 for (var j = 1; j <= cols; j++ ) { var col_name = rg.getCell(1, j).getValue(); // カラム名 var col_value = rg.getCell(rows, j).getValue(); // 入力値 if ( col_name ) { body += "【"+col_name+"】\n"; body += col_value + "\n\n"; if ( col_name === NAME_COL_NAME ) { body = col_value+" 様\n\n"+body; } if ( col_name === NAME_COL_NAME ) { subject += " "+col_value+" 様"; } if ( col_name === MAIL_COL_NAME ) { to = col_value; } if ( col_name === SUBJ_COL_NAME ) { subject += col_value; } } } body += footer; // 送信先オプション var options = {}; 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); } }
- スクリプトエディタ画面/リソース/現在のプロジェクトのトリガーを選択
- sendMailFromForm/スプレットシートからフォーム送信時を選択
- フォーム実行画面から投稿するとメールが送られてくるので確認。
"スクリプト を正常に完了できませんでした。"のメールエラー
以下エラーが出た場合
スクリプト を正常に完了できませんでした。失敗のまとめを下記に示します。このスクリプトのトリガーを設定したり、今後の失敗の通知の受信設定を変更したりするには
スプレットシートの共有とオーナー変更
- スプレットシートファイルの共有から編集者を追加
- 同じdomainならオーナーを変更可能
管理人メールアドレス変更
- スクリプトコード内のadminの箇所のメールを変更
- 新しい管理人のgoogleアカウントを開き
- スクリプトエディタ画面/リソース/現在のプロジェクトのトリガーを選択
- sendMailFromForm/スプレットシートからフォーム送信時を選択
問い合わせ者にメールを送らない方法
"body += footer;"のコードの下に以下を追加
// 問い合わせ者にメールを送らない to = admin; bcc = "";
参考
【応用編】Googleフォーム転送&返信スクリプト
http://cityjumperweb.com/2014/02/06/google-form2/
Googleドライブのフォーム入力後に自動返信メールを送る方法Add Star