「Google/スプレットシート/問い合わせフォーム作成」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→問い合わせ者にメールを送らない方法) |
(→フォームに初期値を入れる) |
||
行134: | 行134: | ||
以下のような感じのurlが取得できる | 以下のような感じのurlが取得できる | ||
− | ttps://docs.google.com/forms/d/e/sample/viewform?usp=pp_url&entry.1000007=saitodesu&entry.1000004=onamaedesu&entry.1663205961=kaisyadesu&entry.1000005=emaildesu&entry.1000006=toiawasedesu | + | |
+ | ttps://docs.google.com/forms/d/e/sample/viewform?usp=pp_url&entry.1000007=saitodesu&entry.1000004=onamaedesu&entry.1663205961=kaisyadesu&entry.1000005=emaildesu&entry.1000006=toiawasedesu | ||
参考:https://hajiritsu.com/google-form-defalut-value/ | 参考:https://hajiritsu.com/google-form-defalut-value/ |
2023年5月12日 (金) 00:21時点における最新版
目次
準備
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 = "";
フォームに初期値を入れる
- フォーム編集画面を開く
- 右上にある︙ボタンから、"事前入力したURLを取得"を選択
- 入れたい値を入れ、一番下にある"リンクを取得"ボタンを押す
- リンクをコピーボタンを選択
以下のような感じのurlが取得できる
ttps://docs.google.com/forms/d/e/sample/viewform?usp=pp_url&entry.1000007=saitodesu&entry.1000004=onamaedesu&entry.1663205961=kaisyadesu&entry.1000005=emaildesu&entry.1000006=toiawasedesu
参考:https://hajiritsu.com/google-form-defalut-value/
参考
【応用編】Googleフォーム転送&返信スクリプト
http://cityjumperweb.com/2014/02/06/google-form2/
Googleドライブのフォーム入力後に自動返信メールを送る方法Add Star
http://d.hatena.ne.jp/sho_oza/20130315/1363356215
フォーム入力後メール転送