質問: Googleフォームに投稿された内容について、自動で投稿通知がメールで届く様に設定したいと思っています。 メール配信のスクリプトを以下の様に作成いたしましたが、『メソッド formatDate(string,string,string) が見つかりません。(行47、ファイルコード)』のエラーが表示されてしまいます。 自身の力では解決できなかった為、お力をお貸しいただけますとたすかります。 よろしくお願いします。 ``` function Daily_mail(){ //★★デイリーのトリガとして登録する★★ //管理表の入力状況をデイリーメールとして配信 var ss=SpreadsheetApp.getActiveSpreadsheet(); //開いているスプレッドシートを取得 var Manage_Sheet=ss.getSheetByName("管理表"); //「管理表」シートを取得 var Datas=Manage_Sheet.getDataRange().getValues(); //管理表シートのデータを取得 var d=new Date(); var today=Utilities.formatDate(d,'Asia/Tokyo','yyyy/MM/dd'); //今日の日付をyyyy/MM/ddに変換 var flag=0; //フラグ var Manage_LastRow=Manage_Sheet.getRange("F:F").getValues().filter(String).length; //管理表シートのF列の最終行を取得 var tmp_msg=""; //メール文言 for(var b=2;b<=Manage_LastRow+1;b++){ var tmp=Datas[b][2]; //B列(タイムスタンプ)の日付を取得 //B列でセル結合している部分の回避処理 if (tmp==""){ continue; } var tmp_date=Utilities.formatDate(tmp,'Asia/Tokyo','yyyy/MM/dd');//B列(タイムスタンプ)の日付をyyyy/MM/ddに変換 if(today==tmp_date){ //B列の日付が今日の日付である場合にフラグをたてて、メール本文を作成する flag=1; //フラグに1を代入する tmp_msg=tmp_msg+"● No."+Datas[b][0]+" "+Datas[b][1]+" "+Datas[b][2]+" "+Datas[b][3]+"\n"; //フォーム投稿があったデータをメール本文用に取りまとめ } } //フラグが立っている場合(当日にフォーム投稿があった場合) if(flag==1){ var ss_Url=ss.getUrl(); //スプレッドシートのURLを取得(スプレッドシートへのリンク生成用) var sh_id=Manage_Sheet.getSheetId(); //シートのシートIDを取得(スプレッドシートへのリンク生成用) var sh_Url=ss_Url+"#gid="+sh_id; //シートのURL var Mail_to="***@***.jp"; //デイリーメールの送付先(To)を入力 var Mail_cc="***@***.jp"; //デイリーメールの送付先(CC)を入力(複数ある場合は、カンマ区切りで複数のアドレスを指定) var Mail_from="***@***.jp";//メール送信元メールアドレス(事務局のML) var Mail_suject="テスト"; //メール件名 //メール本文 var Mail_text="各位\n\n"+ "***応募フォームに投稿がありました。\n"+ "管理表シートを確認ください。\n"+ sh_Url+"\n\n"+ "----------------------------------------------------------\n"+ tmp_msg+ "----------------------------------------------------------\n"; //メール送信(送信元をMITA事務局でメールを送信する) //GmailApp.sendEmail(Mail_to, Mail_suject, Mail_text,{cc:Mail_cc,name:'MITA事務局',from:Mail_from}) } } ``` ≪8/3 画像・文言追加≫ スプレッドシートのB列に本日の日付がある場合に、通知メールが送付される仕様にしたいです。 なお、Googleフォームに投稿された回答を元にデータを別シートへ転記するというGASを組み込んでいる為、 B3には、『2018/08/03』と表示されていますが、セルにカーソルをあてると実際には「2018/08/03 9:30:00」となっています。 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/b9566ad831d317b52e39ebb45f97565f.png)
回答: formatDateの1つめの引数が、stringだと判定されているのですが、シート上は日付ですよね? ねんのため、下記の追記をして出力を見ていただけませんか? ``` var tmp=Datas[b][2]; //B列(タイムスタンプ)の日付を取得 Logger.log(Datas[b][2]); // ←これ //Logger.log(Datas[b][1]); //もしくは1にしているならこう。 ```