「Google/スプレットシート/問い合わせフォーム作成」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→フォームに初期値を入れる) |
|||
(同じ利用者による、間の17版が非表示) | |||
行6: | 行6: | ||
==スプレットシート作成== | ==スプレットシート作成== | ||
− | 新規/ | + | 新規/Googleスプレットシートで作成 |
==フォーム作成== | ==フォーム作成== | ||
行19: | 行19: | ||
質問のタイトル:お名前 | 質問のタイトル:お名前 | ||
質問のタイプ:テキスト | 質問のタイプ:テキスト | ||
− | + | 質問のタイプ:問い合わせ内容 | |
質問のタイプ:段落テキスト | 質問のタイプ:段落テキスト | ||
行25: | 行25: | ||
フォーム編集画面/実際のフォームを見るを選択 | フォーム編集画面/実際のフォームを見るを選択 | ||
− | == | + | ==回答後に回答者と管理者メールを送る== |
#スプレットシート/ツール/スクリプトエディタを選択 | #スプレットシート/ツール/スクリプトエディタを選択 | ||
#myfunction(){}を削除して以下をコピーペーストして保存する | #myfunction(){}を削除して以下をコピーペーストして保存する | ||
行47: | 行47: | ||
var SUBJ_COL_NAME = '件名'; | var SUBJ_COL_NAME = '件名'; | ||
// メール送信先 | // メール送信先 | ||
− | var admin = "送信先@ | + | var admin = "送信先@gmail.com"; // 管理者(必須) |
var cc = ""; // Cc: | var cc = ""; // Cc: | ||
var bcc = admin; // Bcc: | var bcc = admin; // Bcc: | ||
行66: | 行66: | ||
var col_name = rg.getCell(1, j).getValue(); // カラム名 | var col_name = rg.getCell(1, j).getValue(); // カラム名 | ||
var col_value = rg.getCell(rows, j).getValue(); // 入力値 | var col_value = rg.getCell(rows, j).getValue(); // 入力値 | ||
− | body += "【"+col_name+"】\n"; | + | if ( col_name ) { |
− | + | body += "【"+col_name+"】\n"; | |
− | + | body += col_value + "\n\n"; | |
− | + | if ( col_name === NAME_COL_NAME ) { | |
− | + | body = col_value+" 様\n\n"+body; | |
− | + | } | |
− | to = col_value; | + | 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; | ||
+ | } | ||
} | } | ||
} | } | ||
行98: | 行103: | ||
#sendMailFromForm/スプレットシートからフォーム送信時を選択 | #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 | ||
+ | |||
+ | |||
+ | フォーム入力後メール転送 | ||
+ | |||
+ | http://creazy.net/2011/03/google_form_mailsend.html |
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
フォーム入力後メール転送