回答編集履歴

1 記述ミスの修正

退会済みユーザー

退会済みユーザー

2018/03/27 21:52  投稿

まず、ループ中の処理だけを提示されているのかと思いますが、全体が見えないので見える部分のみでの回答となります。
ロジックとしては以下のようにすれば良いと思います。
0. メールアドレス~添付ファイル名_3までの範囲を取得(B2:E5)
0. 企業ごとに空値チェック、添付ファイル取得、メール送信までを行う
条件分岐をわかりやすく、あえて泥臭く適当に組んだサンプルです。
動作確認はしていませんので参考程度に。
```javascript
   /*省略*/
   var arr = mySheet.getRange(2, 2, 4, 4).getValues();// 1
   //処理負荷軽減のためまとめてフォルダー情報を取得
   var folders = [
       DriveApp.getFolderById('-----------------------'), //(添付1ファイル)のフォルダIDで取得
       DriveApp.getFolderById('-----------------------'), //(添付2ファイル)のフォルダIDで取得
       DriveApp.getFolderById('-----------------------') //(添付3ファイル)のフォルダIDで取得
   ];
   // 2
   for(var i = 0, l = arr.length; i < l; i++){
       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());
       }
       /*メール送信処理 from:arr[i][0] */
       /*メール送信処理省略 to:arr[i][0] */
       attachmentFiles = []; //初期化
   }
   /*省略*/
```
```
[補足]
一部、コード中に記述ミスがありましたので修正しました。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る