質問: 0, i= arr.length; i <1; i++){ var strTo=arr[i][0].getValue().next(); //送付先メールアドレスを取得 //添付ファイル1~3を取得(空白ならスキップ) if(arr[i][1] != ''){ attachmentFiles.push(folders[0].getFilesByName(arr[i][1]).next()); } if(arr[i][2] != ''){ attachmentFiles.push(folders[1].getFilesByName(arr[i][2]).next()); } if(arr[i][3] != ''){ attachmentFiles.push(folders[2].getFilesByName(arr[i][3]).next()); } } var strBody=strDoc /* メールを送信 */ GmailApp.sendEmail( strTo, //toアドレス strSubject, //表題 strBody, //本文 { from: strFrom, //fromアドレス name: strSender, //差出人 attachments: [] } ); } コード ```
回答: 改めて回答させていただきますね。 コード中に補足も入れています。 ``` function sendMailWithAttachments(){ /*省略*/ var arr = mySheet.getRange(2, 2, 4, 4).getValues();// /* arr が二次元配列として以下のように取得されていることがイメージできていますか? [['送信先アドレス','添付1ファイル名','添付2ファイル名','添付3ファイル名'],...[]] */ /*省略*/ for(var i = 0, l = arr.length; i < l; i++){//←修正しました。 //var strTo=arr[i][0].getValue().next(); //送付先メールアドレスを取得 var strTo=arr[i][0]; //添付ファイル1~3を取得(空白ならスキップ) if(arr[i][1] != ''){ attachmentFiles.push(folders[0].getFilesByName(arr[i][1]).next()); } if(arr[i][2] != ''){ attachmentFiles.push(folders[1].getFilesByName(arr[i][2]).next()); } if(arr[i][3] != ''){ attachmentFiles.push(folders[2].getFilesByName(arr[i][3]).next()); } //} //var strBody=strDoc //←必要ですか? /* メールを送信 */ GmailApp.sendEmail( strTo, //toアドレス strSubject, //表題 //strBody, //本文 strDoc, { from: strFrom, //fromアドレス name: strSender, //差出人 //attachments: [] //←空配列を添付? attachments:attachmentFiles } ); attachmentFiles = []; //初期化 } /* forループでの処理が間違っています。 最初に示したロジック通りになっていません。 「企業ごとに」空値チェック、添付ファイル取得、メール送信までを行います。 */ } ``` [補足] お約束ではございますが、動作確認等はしておりませんので、参考までに。