初心者でも簡単!GASでスプレッドシートの空白行を自動削除する方法
スプレッドシートの中に空白行がたくさんあって、手動で消すのが大変なんです…。GASで自動的に空白行を削除する方法を知りたいなぁ。

猫男

catman
安心するんだ。catmanがGASを使ったスプレッドシートの空白行を削除する方法を教えてやろう。
GASでスプレッドシートの空白行を削除する準備
まずは、スプレッドシートを操作するための準備から始めよう。
GASプロジェクトを作成
- Googleドライブにアクセスし、新しいGoogleスプレッドシートを作成。
- メニューから「拡張機能」→「Apps Script」を選択して、GASのエディタを開く。
GASコードを書く
GASのコードエディタに以下のスクリプトを貼り付けてみよう。
function deleteEmptyRows() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var data = sheet.getDataRange().getValues();
var newData = data.filter(function(row) {
return row.some(function(cell) {
return cell !== "";
});
});
sheet.clearContents();
sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);
}
うわぁ、スクリプトの見た目がちょっと怖いけど、一体何をしてるんですか?

猫男

catman
心配いらないさ。少しずつその意味を理解していこう。
GASスクリプトの解説
コードの基本的な流れ
まず、SpreadsheetApp.getActiveSpreadsheet()で現在のスプレッドシートを取得し、その中のgetActiveSheet()メソッドでアクティブシートを得るんだ。
次に、getDataRange().getValues()でシートの全データを二次元配列として取得し、配列のfilterメソッドで空白行を取り除いている。
空白行の削除
var newData = data.filter(function(row) {
return row.some(function(cell) {
return cell !== "";
});
});
この部分では、各行が少なくとも一つの空セル以外の値を含むかどうかを確認し、真の行だけを新しいデータとして保持している。
データの書き込み
最後に、clearContents()でシートをクリアし、getRangeとsetValuesを利用して、新しいデータを書き込むんだ。
このコードでスプレッドシートの空白行が消えてくんですね!便利です!

猫男

catman
こうしてGASを使えば、面倒な作業も効率的にできるさ。これからもどんどん活用していこうよう。