facebook twitter hatena line email

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

提供: 初心者エンジニアの簡易メモ
移動: 案内検索
(フォームの入力項目作成)
行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(); // 入力値
 +
            if ( col_name ) {
 
             body += "【"+col_name+"】\n";
 
             body += "【"+col_name+"】\n";
 
             body += col_value + "\n\n";
 
             body += col_value + "\n\n";
            if ( col_name === NAME_COL_NAME ) {
+
                if ( col_name === NAME_COL_NAME ) {
                body = col_value+" 様\n\n"+body;
+
                    body = col_value+" 様\n\n"+body;
            }
+
                }
            if ( col_name === MAIL_COL_NAME ) {
+
                if ( col_name === MAIL_COL_NAME ) {
                to = col_value;
+
                    to = col_value;
            }
+
                }
            if ( col_name === SUBJ_COL_NAME ) {
+
                if ( col_name === SUBJ_COL_NAME ) {
                subject += col_value;
+
                    subject += col_value;
 +
                }
 
             }
 
             }
 
         }
 
         }

2015年10月12日 (月) 01:25時点における版

準備

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 = "送信先@google.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 === 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. フォーム実行画面から投稿するとメールが送られてくるので確認。