私は Google Apps Script/Javascript にかなり慣れていないので、これは本当に簡単な答えかもしれません。スプレッドシートで特定のセル値が変更されたときに、複数のメールを送信しようとしています。以下は私の作業コードです。onEdit を実行するように設定しました。ただし、シートのセルが変更されるたびに更新が送信されます。特定のセル (残高) が変更されたときに 1 つの電子メールを送信するだけです。
function sendUpdate() {
var recipients=["User1@gmail.com","User2@email.com"];
var sheet = SpreadsheetApp.getActiveSheet();
// Get the range of cells that store balances
var sslink = SpreadsheetApp.getActiveSpreadsheet().getUrl()
var Balances = sheet.getRange("A28:C31").getValues();
var User1Balance = Balances[2][2];
var User2Balance = Balances[3][2]
var User3Balance = Balances[0][2]
var User4Balance = Balances[1][2]
for (var i = 0; i < 2; i++) {
GmailApp.sendEmail(recipients[i],
'Utilities Spreadsheet updated',
"This is an automated email generated from the utilities spreadsheet being updated. " +
"Current balances are: " +
"\n\n User1: " + User1Balance + "\n User2: " + User2Balance + "\n User3: " + User3Balance + "\n User4: " + User4Balance +
"\n\n Access the spreadsheet at: " + sslink);
}
};
onOpen 関数を使用して初期値を読み込み、シートが編集されるたびにこれらの値を比較してみました。ただし、初期データを上記のメイン関数に渡す際に問題がありました。これについてのアドバイスは素晴らしいでしょう。グローバル変数を使えば簡単だと思いましたが、それが可能かどうかはわかりません。