「Google/スプレットシート/問い合わせフォーム作成」の版間の差分
提供: 初心者エンジニアの簡易メモ
細 (Admin がページ「Google/アンケートシステム構築」を「Google/問い合わせフォーム作成」に移動しました) |
(→フォームに初期値を入れる) |
||
| (同じ利用者による、間の16版が非表示) | |||
| 行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
フォーム入力後メール転送
