サイトアイコン Googleスプレッドシート 完全攻略

【初心者向け】Googleフォームでいきなり返信メールを送れるようになる方法(チュートリアル)

Googleフォーム関連

ご訪問ありがとうございます。

スプレッドシートマスターのひろしです。

前回

Googleフォーム 回答により分岐する方法(条件分岐)
  • Googleフォームで条件により分岐させる方法がわかります。
  • セクションの使用方法がわかります。
  • 今回は、とっても価値の高い方法をお伝えします。


    これを知ることであなたは、

    Google Formに登録があった際に、
    自動的に登録者に返信メール
    送れるようになります。

    Googleフォームは、とても便利なのですが
    残念ながら、登録時に登録者にメールを
    自動的に返信する仕組みがありません。

    それが、この記事を読むことで簡単に実現できて
    しまいます。

    さらに。。。

    もちろん返信メールの内容を変更するのも自由自在です。

    さらに、登録時に、アナタあてへのメールが届くように
    設定もできます。

    さらにさらに、送信元のメールアドレスを
    変更することも可能です。

     

     

    逆に、知らないと

    毎回、Googleフォームに登録された際に、
    チンタラ、チンタラと登録者に
    手動で返信メールを送る羽目になります。

     

    なので、今すぐこのスクリプトを動かしてほしいと思います。

     

     

     

     

    最新版はこちら↓

    2024年版 Googleフォーム登録時に自動的にメール送る方法
  • Googleフォーム登録時に自動的にメールを送ることができます。
  • 送信元のメールアドレスの変更やメールの内容も手軽に更新できます。
  •  

     

     

     

    準備するもの

    ・Googleフォーム

    これだけです。

    あとは、未知の世界に飛び込む勇気だけです。

     

    では、動画を見ながらやってみましょう。

    動画はこちら

     

    設定方法

    スクリプトエディタの起動

    Step1.

    Googleフォームを作成ます

     

    Step2.

    ①[|]をクリックします。
    ②[<>スクリプトエディタ]をクリックします。

     

    スクリプトの編集

    Step1.

    以下のコードをコピペします

    //★スプレッドシートのID URLのユニークな長い部分
    const FORMAT_SHEET_ID = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    
    //★設定項目が記載してあるシートの名称
    const FORMAT_SHEET_NAME = "返信メールフォーマット"
    
    //フォーム登録者にメールを送信する
    function submitForm(e) {
      let itemResponses = e.response.getItemResponses();
      let message = '';
      let username = '';
      let mail = '';
    
      const ss = SpreadsheetApp.openById(FORMAT_SHEET_ID)
      const sheet = ss.getSheetByName(FORMAT_SHEET_NAME)
    
      //スプレッドシートから設定内容を取得する
      let SendInfobuf = sheet.getRange(1, 1, 11, 3).getValues()
    
      const Cchk = 0  //チェックボックスの値の位置
      const Clmv = 2  //項目の値の位置
    
      const Lsubject = 0    // 件名
      const Lcontents = 1   // 本文
      const Lfromadder = 2  // 送信元メールアドレス
      const Lfromname = 3   // 送信元名前
      const Latendmadder = 4  // 通知先メールアドレス
      const Latendsubject = 5 // 通知先への件名
      const Latendcontents = 6 // 通知先への本文
      const Lmailaddercaption = 9 // フォーム上のメールアドレスのキャプション
      const Lnamecaption = 10 //フォーム上の名前のキャプション
    
      //フォーム内の名称
      const ITEM_MAILADDRESS = SendInfobuf[Lmailaddercaption][Clmv]//メールアドレス"
      const ITEM_NAME_TITLE = SendInfobuf[Lnamecaption][Clmv]//お名前(ニックネーム可)
    
      //フォームから各項目の値を取得
      for (let i = 0; i < itemResponses.length; i++) {
        let itemResponse = itemResponses[i];
        let question = itemResponse.getItem().getTitle();
        let answer = itemResponse.getResponse();
    
        if (question == ITEM_MAILADDRESS) {
          mail = answer;
        }
        if (question == ITEM_NAME_TITLE) {
          username = answer;
        }
        message += (i + 1).toString() + '. ' + question + ': ' + answer + '\n';
      }
    
      //返信メールの作成
      let subject = SendInfobuf[Lsubject][Clmv]//件名の取得
      let contents = SendInfobuf[Lcontents][Clmv] //本文の取得
    
      subject = subject.replace("%name%", username);//%name%を置換する
       let result = contents //初期値を代入
    
      do {
    
        contents = result //結果を代入
        result = contents.replace("%name%", username);//%name%を置換する
    
        console.log(result)
      } while (result !== contents)
      
    
      let options =
      {
        from: SendInfobuf[Lfromadder][Clmv],
        name: SendInfobuf[Lfromname][Clmv]
      }
    
      //登録者にメールを送信する
      if (SendInfobuf[Lfromadder][Cchk]) {  //送信元メールアドレスがon
        console.log("送信元を変更 " + SendInfobuf[Lfromadder][Clmv])
        GmailApp.sendEmail(mail, subject, contents, options) //登録者にメールを送信する
      }
      else {
        GmailApp.sendEmail(mail, subject, contents) //登録者にメールを送信する
      }
    
    
      if (SendInfobuf[Latendmadder][Cchk]) {  //通知先メールアドレスがon
        console.log("通知先メールアドレスがon")
        console.log(SendInfobuf[Latendmadder][Clmv])
        subject = SendInfobuf[Latendsubject][Clmv]  //件名の取得
        contents = SendInfobuf[Latendcontents][Clmv] //本文の取得
        contents += '\n\n' + message;
    
        GmailApp.sendEmail(SendInfobuf[Latendmadder][Clmv],
          SendInfobuf[Latendsubject][Clmv],
          contents)
      }
      else {
        console.log("通知先メールアドレスがoff")
      }
    
    }
    

    Step2.
    「返信メールフォーマット」のシート
    あなたのスプレッドシート内にコピペします。

    (シート名を「返信メールフォーマット」に変更する)

    Step3.

    ①コピーした「返信メールフォーマット」のURLのa.の部分をコピーし

    以下の XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxに貼り付けます。

    //★スプレッドシートのIDz*URLのユニークな長い部分
    var FORMAT__SHEET_ID = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
    

    Step4.

    シート名が一致しているか確認しセーブする。

    //★設定項目が記載してあるシートの名称
    const FORMAT_SHEET_NAME = "返信メールフォーマット";
    

    Step5.

    フォームのキャプションが同じであることを確認する。

     

     

    トリガーの設定

    Step1.

    トリガーを設定します。

     

     

     

     

    マインドセットします。

    マインドセット
    一歩踏み込むこむ事で快適さが待っている

    ここまで、読んでいただきありがとうございます。

    おそらくあなたは、GAS(Google Apps Script)なるものを
    触ると聞き、二の足を踏みそうになったと思います。

    そして多くの方が、ここまで来る前に
    自分には関係ない世界だと諦めたことだと思います。

     

    でも、ちょっと頑張ってやるだけで、
    Googleフォームで「自動返信メール」が送れるようになるのです。

    多くの人が挫折した中で、
    あなたはすばらしいです。

    では、今回のスプレッドシートマスターへの究極の方法です。

    Step1.
    Googleフォームを作成する
    Step2.
    「返信メールフォーマット」のシート
    あなたのスプレッドシート内にコピペする。

    Step3.
    スクリプトをコピペする

    Step4.
    スプレッドシートのIDを変更する

    Step5.
    トリガーを設定する

    これだけです。

    では、早速 Googleフォームを作成してください
    今すぐです。

    最後までご覧いただきありがとうございます。

    ps.


    2021/03/14 スクリプトを改善しました。

     

    スクリプトの中身について知りたい場合は、こちら↓

     

    Googleフォーム関連

    モバイルバージョンを終了