GASで書類の承認システムを作ろうとしています。
Googleスプレッドシート上の特定のセル(5行目C列)が「全員承認」になると、申請者のメールアドレス(5行目F列)とccアドレス(5行目G列)に自動でGメールが送信される仕組みです。
申請書類(別スプレッドシート)のURLは(6行目H列)にリンクを貼ります。
一行(5行目)の場合はうまくできたのですが、これに複数の行(申請書類がC列の8行目、11行目、14行目などいくつもある)を組み合わせるやり方が分かりません。
申請書類の「全員承認」がC列上に複数ある場合に、それぞれの行にある申請者のメールアドレス(F列)とccアドレス(G列)にメールを送るコードを書きたいのです。
function sendEmailByEvent() { //シート内の全データを取得 let sheet = SpreadsheetApp.getActiveSheet(); let data = sheet.getDataRange().getValues(); //変更されたセルを取得、また、セルの行数を取得して配列に対応できるように-1した変数を設定 let targetCell = sheet.getActiveCell(); let targetCellRow = targetCell.getRow()-1; //メール送付先のアドレスとメール題名を設定 let add = sheet.getRange(5,6).getValue(); let subject = 'あなたが提出していた書類が承認されました'; //オプションでCCの宛先を設定する let options = {cc:`${sheet.getRange(5,7).getValue()}` }; //メール本文用に、取得したセルの行データをbody配列にpushする let body = `あなたが提出していた書類が承認されました。\n\n以下のURLをクリックしてデータをダウンロードしてください。\n\n\n${sheet.getRange(6,8).getValue()}`; //最初のifで変更があったセルが設定2に対応するC列であるかどうかを判断。次のifで設定1が全員承認以外、設定2が全員承認になっているかどうかを確認。GmailAppでメールを送る if(targetCell.getColumn() === (5,3)){ if(data[targetCellRow][1] !== "全員承認" && data[targetCellRow][2] ==="全員承認") GmailApp.sendEmail(add,subject,body,options) } }
試したこと
いろいろ探したのですが見つからず、どなたかご教示いただけますと幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/05 11:37
2021/04/05 12:39
2021/04/05 23:26