前提・実現したいこと
GASでスプレッドシートのE列変更時にA列の名前をメールで通知するコードを書きたいです。
データ領域はA4:E26で、下記の配列になっています。
Scriptを走らせたいスプレッドシートはIMPORTRANGE関数で他のシートからのコピーです。
=IMPORTRANGE("1srUnLxxxx","xxxx!A1:E26")
.....A...B...C...D...E
....名前...............数値
4 あ.................0
5 い.................0
6 う.................0
7 え.................1
E7変更(0→1)時にA7の文字列(え)とE7の数値(1)をメールで指定アドレスへ通知する。
発生している問題・エラーメッセージ
シート全体がIMPORTRANGE関数の範囲になっているため、シート全てが変更対象になっているようで、A4セル情報しか抽出できません。
該当のソースコード / Google app script
function sendNotification() { var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var sheet = spreadsheet.getActiveSheet(); var range = sheet.getRange("D4:D26"); var value = range.getValue(); var person = spreadsheet.getRange("A4:A26"+ sheet.getActiveCell().getRowIndex()).getValue(); var recipients = "aaaa@aaa.com"; var subject = 'Update to '+sheet.getName(); var body = ' to view the changes on : «' + person + '»' + ' New value : «' + value + '»'; MailApp.sendEmail(recipients, subject, body); };
試したこと
範囲指定→ 以前はA1セルが返っていたが、A4セルで返せるようになった
IF→ うまく設定できず
補足情報(FW/ツールのバージョンなど)
IMPORTRANGEが使われているのが原因だと思うのですが、この状態で変更情報を抽出したいです。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。