earthpg:GAS専門のプログラミングスクール

初心者でも簡単!GASでスプレッドシートの空白行を自動削除する方法

スプレッドシートの中に空白行がたくさんあって、手動で消すのが大変なんです…。GASで自動的に空白行を削除する方法を知りたいなぁ。
猫男
猫男
catman
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
catman
心配いらないさ。少しずつその意味を理解していこう。

GASスクリプトの解説

コードの基本的な流れ

まず、SpreadsheetApp.getActiveSpreadsheet()で現在のスプレッドシートを取得し、その中のgetActiveSheet()メソッドでアクティブシートを得るんだ。

次に、getDataRange().getValues()でシートの全データを二次元配列として取得し、配列のfilterメソッドで空白行を取り除いている。

空白行の削除


var newData = data.filter(function(row) {
  return row.some(function(cell) {
    return cell !== "";
  });
});

この部分では、各行が少なくとも一つの空セル以外の値を含むかどうかを確認し、真の行だけを新しいデータとして保持している。

データの書き込み

最後に、clearContents()でシートをクリアし、getRangesetValuesを利用して、新しいデータを書き込むんだ。

このコードでスプレッドシートの空白行が消えてくんですね!便利です!
猫男
猫男
catman
catman
こうしてGASを使えば、面倒な作業も効率的にできるさ。これからもどんどん活用していこうよう。