質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.12%

GAS:Googleフォームの自動返信で受付番号を設定したい

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 2,592

NEXT.net

score 9

前提・実現したいこと

Googleフォームにてお客様に情報を入力して頂き、自動返信メールが送られるようにGoogleスプレットシートのスクリプトを設定しています。
返信されるメールの内容は、
「 body + フォーム送信内容 + body2 」
という形で自動返信メールが送信されるようにスクリプトを設定していますが、これに「受付番号」を自動で採番(行番号を引用するなど)して追加し、
「 body + 受付番号 + フォーム送信内容 + body2 」
というようにしたいと考えております。

いろいろと検索してためしたのですが、うまく実装できませんでした。
現在使用しているコードを記載しますので、どこに、どのように追記すれば実現できるかご教授頂ければ幸いです。

該当のソースコード

function for_users() {

//自動返信メールの件名
 var title = "メールのタイトル"; 

 //自動返信メールの本文 \nは改行。 
 var body
 = "本文1\n"
 + "本文1\n"
 + "本文1\n"
 + "----------------------------------------\n\n"

var body2
 = "----------------------------------------\n\n"
  + "本文2\n"
  + "本文2\n"
 + "本文2\n"
 + "ーー*ーーー*ーーー*ーーー*ーー\n"
 + " 署名\n"
 + "ーー*ーーー*ーーー*ーーー*ーー\n\n";


 //変数を設定
 var CHECK_BOX = '希望参加地域';//フォームの項目名と同じにする
 var name = '氏名(漢字)'; //フォームの項目名と同じにする
 var mail = 'メールアドレス'; //フォームの項目名と同じにする
 var address = "";

 var sheet = SpreadsheetApp.getActiveSheet();
 var row = sheet.getLastRow();
 var column = sheet.getLastColumn();
 var range = sheet.getDataRange();
 var TIMESTAMP_LABEL = 'タイムスタンプ';

 for (var i = 1; i <= column; i++ ) {

 //スプレッドシートの入力項目名
 var item = range.getCell(1, i).getValue(); 

 //スプレッドシートの入力値
 var value = range.getCell(row, i).getValue();

 //タイムスタンプ→申し込み日時
 if ( item === TIMESTAMP_LABEL ) {
 item = '申し込み日時';
 }

// 日付フォーマットの変換
 if ( item === '申し込み日時' ) {
 value = Utilities.formatDate(value, 'Asia/Tokyo', "YYYY'年'MM'月'dd'日'HH'時'mm'分'ss'秒'");
 }

//本文(body)にフォームの入力項目を追加 
 body += "■"+item+"\n";

 //本文にフォームの入力内容を追加
 body += value + "\n\n";

 //フォームの入力項目が「お名前」の場合は、「様」をつけて、本文の前に追加 
 if ( item === name ) {
 body = value+" 様\n\n"+body;
 }

 //フォームの入力項目が「ご連絡先メールアドレス」の場合は、変数addressに入れる
 if ( item === mail ) {
 address = value;
 }
 }

 //本文1に本文2を追加
 body += body2;

 //宛名=address、件名=title、本文=bodyで、メールを送る
 GmailApp.sendEmail(address,title,body);
} 

試したこと

Googleで検索していろいろコードを書き足してみましたが
「何行目にエラー」と表示されうまくできませんでした。

追記

@yu-smc様
行番号を取得して表示させたいと考えています。
複数人が同時にフォーム送信した場合でもスプレットシートには順番に反映されますので、行番号を受付番号とする場合であれば問題ないかと思います。

@mts10806様
失礼致しました。
初めてこちらのサービスを使用した為よくわかっておりませんでした。
ご享受頂き感謝致します。
>タイトルの変更を忘れておりました。修正致しました。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • yu-smc

    2019/02/22 00:51 編集

    受付番号の取得方法ですが、スプレッドシートに連番ふっておいて、フォーム送信時にスクリプトを発火させ、その時点でスプレッドシートの最新のデータが入っているセルの連番を取ってくるのでいいんでしょうか?(複数人が同時にフォーム送信したらどうなるんだろうとも思いますが)

    キャンセル

  • m.ts10806

    2019/02/22 00:52

    https://teratail.com/help/question-tips#questionTips3-1
    >ありがちな失敗としては、「助けてください」「初心者です」という表題をつけてしまうことです。

    キャンセル

  • m.ts10806

    2019/02/22 01:19

    >【急】
    これも同じ。至急とか緊急とか一番避けられるタイトルです。

    キャンセル

回答 1

check解決した方法

0

コメントおよびご覧頂いた皆さま大変ありがとうございました。
次の方法でなんとか行番号を参照し受付番号の設定ができました。

①" //タイムスタンプ→申し込み日時 "の真上に下記コードを追記
②スプレットシートの1行目の最後列に「受付番号」と入力

  for ( var n = 1; n <= row; n++){

 //受付番号を設定
  var number ='受付番号';
   if ( item === number ){
    value = n-1
   }
   }

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.12%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる