実行時の日付や2ヶ月前の日付などは記載できているので、
後は、セルの値取得と削除をするための処理を行えば可能になります。
以下、参考コードになります。
gs
1function myFunctionWMib() {
2 let ss = SpreadsheetApp.getActiveSpreadsheet()
3
4 // 現在のシートを取得
5 let sheet = ss.getActiveSheet()
6
7 // シートのA列の最終行の値を取得
8 let lastRowNum = sheet.getRange("A:A").getNextDataCell(SpreadsheetApp.Direction.DOWN).getLastRow()
9
10 // 実行時の日付
11 let nowDate = new Date()
12 // 2ヶ月前の日付
13 let towMonthsAgoDate = new Date()
14 towMonthsAgoDate.setMonth(nowDate.getMonth() - 2)
15
16 // 削除カウント
17 let deleteRowCount = 0
18
19 // シートのA列の入力値を取得し、配列化
20 let values = sheet.getRange(`A1:A${lastRowNum}`).getValues().flat()
21
22 // A列データの繰り返し
23 values.forEach(function(v, index) {
24 if (v < towMonthsAgoDate) { // 2ヶ月前の行の場合
25 // 行を削除し、カウントを増やす
26 sheet.deleteRow(index + 1 - deleteRowCount)
27 deleteRowCount++
28 }
29 })
30
31 // 実行時の日付確認用
32 sheet.getRange(`C${lastRowNum + 2 - deleteRowCount}`).setValue(nowDate.toISOString())
33 sheet.getRange(`C${lastRowNum + 3 - deleteRowCount}`).setValue(towMonthsAgoDate.toISOString())
34}
実行前 | 実行後 |
---|
| |