【GoogleAppsScript(GAS)】空白セルの行を一気に削除する方法!|deleteRow(rowindex)|
GASで行を削除したい時はdeleteRow(行番号)を使います。
空白セルの行を一気に削除したい時。
例えば、空白行が多々あって、まとめて削除をしたい時。ひとつずつ行を選択して削除するのは、ちょっと効率が悪そうです・・・。
行を一気に消すスクリプトを作成
まずは、スクリプトエディタを開きます。
まずは関数名をfunction removeRow() などわかりやすい名前に変更して、次に、毎度おまじないのvar sheet=SpreadsheetApp.getActiveSheet();でアクティブシートを取得します。
function removeRow() {
//アクティブシートを取得
var sheet=SpreadsheetApp.getActiveSheet();
deleteRow(rowindex)
行を削除する。
getLastRow();
最終行を取得します。
sheet.getLastRow();
最終行までループで回す
for(var row = 1; row <= sheet.getLastRow(); row++) {
}
空白セルを判定する
あとは、「現在位置が空白セルであれば、その行を削除する」としてあげれば良さそうな気がします!
//セルの値を取得する
var cell = sheet.getRange(row, 1);
cell.isBlank()
.isBlank()で空白かどうか?を判定させます。
//セルがもし空白であれば
if(cell.isBlank()){
//行を削除する
sheet.deleteRow(row);
}
実行
これでおそらくいい感じに空白行が消え・・・
空白行が1行ずつ残ってしまいました・・・!!
この実行内容だと・・・
2行目を削除したタイミングで、本来3行目だった空白セルの行が2行目に移動するので、行を削除できずに通過してしまいます。
ということは、いくつか方法が考えられそうですが、例えば「削除したタイミングで行(row)を1引く」という方法も考えられそうです。
もうひと工夫
//セルがもし空白であれば
if(cell.isBlank()){
//行を削除する
sheet.deleteRow(row);
// 1行分、戻す
row-=1;
}
できました!
まとめ
空白セルが入った行を一気に削除したい時はスクリプトを作ると便利です!
ご参考下さい(^o^)/
この記事が気に入ったらサポートをしてみませんか?