GASで行を削除したい時はdeleteRow(行番号)を使います。
空白セルの行を一気に削除したい時
例えば、空白行が多々あって、まとめて削除をしたい時。ひとつずつ行を選択して削除するのは、ちょっと効率が悪そうです・・・。
まずは、スクリプトエディタを開きます。
まずは関数名をfunction removeRow() などわかりやすい名前に変更して、次に、毎度おまじないのvar sheet=SpreadsheetApp.getActiveSheet();でアクティブシートを取得します。
function removeRow() {
//アクティブシートを取得
var sheet=SpreadsheetApp.getActiveSheet();
deleteRow(rowindex)
行を削除する。
[rml_read_more]
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^)/