前提
Googleスプレッドシートで特定のセルに入力があった際、
入力後決まった時間が経過するとその入力が消える仕組みを作っています。
実現したいこと
①特定のセルへの入力後、一定時間経過後に削除したい。
②特定のセルへの入力後、一定時間経過する前に新たに入力があったとき、その経過時間をリセットさせたい。
発生している問題・エラーメッセージ
実現したいことの①は実現できていますが、②ができておらず調べても分かりませんでした。
下記コードでは、入力後60秒後にその入力が消えるようにしていますが、
入力して30秒後に新たに入力し直したとき、入力し直したものは30秒後(最初の入力から60秒後)に消えてしまいます。
なので、入力し直したときに処理を最初からやり直すか、前の処理は停止し入力し直したときの処理を優先させたいです。
該当のソースコード
トリガーは、
デプロイ:Head
イベントソース:スプレッドシートから
イベント種類:編集時
今はインストーラブルトリガーなしで下記コードのみで動作しています。
F6(F6:G7まで結合セル)に編集があった際、60秒後に入力が消えるようにしています。
GAS
1function onEdit(e) { 2 const inspection_cell = ['F6', 'G7', 'F6:G7']; 3 const changed_cell = e.range.getA1Notation(); 4 let staySecond = 60; 5 for (var i = 0; i < inspection_cell.length; i++) { 6 if (changed_cell == inspection_cell[i]) { 7 Utilities.sleep(staySecond * 1000) 8 SpreadsheetApp.getActiveSpreadsheet().getSheetByName("シート名").getRange(6,6).clearContent(); 9 } 10 } 11}
試したこと
②については調べたのみで具体的にコードを編集し試したことはありません。
補足情報(FW/ツールのバージョンなど)
