質問: ### 前提・実現したいこと 1GASで指定したドキュメントに記載されている本文をスプレッドシートの連絡先一覧に送るプログラム。 2最終的にはGoogleドライブ上のファイルを複数添付できるようにしたい。 ここに質問の内容を詳しく書いてください。 Google Apps Scriptというかプログラミング自体初心者です。 現在1のプログラムの作成を目指しています。 諸先輩方のソースコードを参考にして作成したのですが以下のエラーメッセージが表示されてしまいます。 ただし、メールは問題なく送れています。 なぜエラーメッセージが出るのかご教示いただけるとありがたいです。 ### 発生している問題・エラーメッセージ ``` Exception: メールを送信できませんでした: 受信者が指定されていません(行 33、ファイル「コード」) ``` ### 該当のソースコード ``` function myFunction() { var SheetName=SpreadsheetApp.getActiveSheet(); var SheetRow=SheetName.getDataRange().getLastRow(); var docMail=DocumentApp.openById("1SPidgrhsag1BxDcnqtykwRINuXnXf5NB_CMahcdHOTc"); var strDoc=docMail.getBody().getText(); var strSubj="お知らせとお願い"; //タイトル var strFrom="yuuichi@mail.co.jp"; //Fromのアドレス var strSend="yuuichi"; //差出人の名前 for(var i=9;i<=SheetRow;i++){ var strComp=SheetName.getRange(i,1).getValue(); var strName=SheetName.getRange(i,2).getValue(); var strToAd=SheetName.getRange(i,3).getValue(); var strBody=strDoc.replace(/{会社名}/,strComp).replace(/{担当者名}/,strName); GmailApp.sendEmail( strToAd, strSubj, strBody, { from: strFrom, name: strSend } ); } } ``` ### 試したこと 上記エラーメッセージは出るのですが、実際にはメールが送れています。 内容も期待通りでエラーが出ること以外は問題ありません。 気にせず使ってしまえばいいと言えばそうなのですが、記載がおかしい箇所があるのでは、と気持ち悪い状態です。 ### 補足情報(FW/ツールのバージョンなど) 行33はGmailApp.sendEmail の部分です。
回答: エラーメッセージが、 > > 受信者が指定されていません > > > なので、`var strToAd=SheetName.getRange(i,3).getValue();`で設定される`strToAd`の値を`console.log`でログに出力するなどして確認してください。 もし、メールアドレスにならない文字列(や空文字列)がログに記録されているなら、対象となるデータよりも下のどこかの列のセルにデータが記録されていて、`getLastRow`の値がそれを拾っているのが原因です。その場合は、`getValue`した値の簡単なチェックを行ない、実際にメールを送る前に`continue`するなどの処理を行なえばいいでしょう。