GASでチェックを入れた行を自動で素早く削除したい

前提

スプレッドシートでタスク管理表を管理しています。

GoogleAppScriptを使って、
タスク管理表に記載している完了タスクを自動削除しているのですが、
動作が非常に遅くなっているので、修正したいと考えています。

以下コードをどのように修正すれば処理速度が速くなるか、ご教示いただきたいです。

なお、5行目以降にタスクを書き出しており、合計200行ほどあります。

実現したいこと

発生している問題・エラーメッセージ

エラー表示はありません。 処理速度が1行削除するのに5秒ほどかかっているので30行ほど消すと非常に重いです。

該当のソースコード

function delete_duplication(){ var sh = SpreadsheetApp.getActiveSheet(); var last_row = sh.getLastRow(); for(var i = 5; i < last_row; i++){ var range = sh.getRange("A"+ i); var value = range.getDisplayValue(); if(value == "TRUE"){ var start_row = i; var num_row = 1; sh.deleteRows(start_row, num_row); i = i - 1; } } }

試したこと

繰り返し構文のforの外に、getRangeを出すと良いという情報を目にしましたが、
うまくいきませんでした。

補足情報(FW/ツールのバージョンなど)

何卒宜しくお願い致します。

コメントを投稿

0 コメント