facebook twitter hatena line email

「Google/スプレットシート/問い合わせフォーム作成」の版間の差分

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(フォームに初期値を入れる)
 
(同じ利用者による、間の17版が非表示)
行6: 行6:
  
 
==スプレットシート作成==
 
==スプレットシート作成==
新規/Googleスプイレットシートで作成
+
新規/Googleスプレットシートで作成
  
 
==フォーム作成==
 
==フォーム作成==
行19: 行19:
 
  質問のタイトル:お名前
 
  質問のタイトル:お名前
 
  質問のタイプ:テキスト
 
  質問のタイプ:テキスト
  質問のタイプ:備考
+
  質問のタイプ:問い合わせ内容
 
  質問のタイプ:段落テキスト
 
  質問のタイプ:段落テキスト
  
行25: 行25:
 
フォーム編集画面/実際のフォームを見るを選択
 
フォーム編集画面/実際のフォームを見るを選択
  
==回答後にメールを送る==
+
==回答後に回答者と管理者メールを送る==
 
#スプレットシート/ツール/スクリプトエディタを選択
 
#スプレットシート/ツール/スクリプトエディタを選択
 
#myfunction(){}を削除して以下をコピーペーストして保存する
 
#myfunction(){}を削除して以下をコピーペーストして保存する
行47: 行47:
 
     var SUBJ_COL_NAME = '件名';
 
     var SUBJ_COL_NAME = '件名';
 
     // メール送信先
 
     // メール送信先
     var admin = "送信先@google.com"; // 管理者(必須)
+
     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_value + "\n\n";
+
                body += "【"+col_name+"】\n";
            if ( col_name === NAME_COL_NAME ) {
+
                body += col_value + "\n\n";
                body = col_value+" 様\n\n"+body;
+
                if ( col_name === NAME_COL_NAME ) {
            }
+
                    body = col_value+" 様\n\n"+body;
            if ( col_name === MAIL_COL_NAME ) {
+
                }
                 to = col_value;
+
                if ( col_name === NAME_COL_NAME ) {
            }
+
                    subject += " "+col_value+" 様";
            if ( col_name === SUBJ_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ドライブにアクセス

http://drive.google.com

スプレットシート作成

新規/Googleスプレットシートで作成

フォーム作成

挿入/フォーム作成を選択

フォームの入力項目作成

フォーム編集画面の下のアイテム追加から項目を選択

以下を入力

質問のタイトル:メールアドレス
質問のタイプ:テキスト
質問のタイトル:お名前
質問のタイプ:テキスト
質問のタイプ:問い合わせ内容
質問のタイプ:段落テキスト

フォームを使って見る

フォーム編集画面/実際のフォームを見るを選択

回答後に回答者と管理者メールを送る

  1. スプレットシート/ツール/スクリプトエディタを選択
  2. 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);
   } 
}
  1. スクリプトエディタ画面/リソース/現在のプロジェクトのトリガーを選択
  2. sendMailFromForm/スプレットシートからフォーム送信時を選択
  3. フォーム実行画面から投稿するとメールが送られてくるので確認。

"スクリプト を正常に完了できませんでした。"のメールエラー

以下エラーが出た場合

スクリプト を正常に完了できませんでした。失敗のまとめを下記に示します。このスクリプトのトリガーを設定したり、今後の失敗の通知の受信設定を変更したりするには
  1. スプレットシート/ツール/スクリプトエディタを選択
  2. ▶︎(再生)ボタンを押し実行権限を許可する

スプレットシートの共有とオーナー変更

  1. スプレットシートファイルの共有から編集者を追加
  2. 同じdomainならオーナーを変更可能

管理人メールアドレス変更

  1. スクリプトコード内のadminの箇所のメールを変更
  2. 新しい管理人のgoogleアカウントを開き
  3. スクリプトエディタ画面/リソース/現在のプロジェクトのトリガーを選択
  4. sendMailFromForm/スプレットシートからフォーム送信時を選択

問い合わせ者にメールを送らない方法

"body += footer;"のコードの下に以下を追加

// 問い合わせ者にメールを送らない
to = admin;
bcc   = "";

フォームに初期値を入れる

  1. フォーム編集画面を開く
  2. 右上にある︙ボタンから、"事前入力したURLを取得"を選択
  3. 入れたい値を入れ、一番下にある"リンクを取得"ボタンを押す
  4. リンクをコピーボタンを選択

以下のような感じの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