GASで空白行・空白列・空白セルを削除する方法【スプレッドシート】

GASで空白行・空白列を自動削除するには?【サンプルコードあり】
mono
mono
こんにちは、monoです。

スプレッドシートにはセルの数に制限があるのをご存知でしょうか?

2022年9月現在、スプレッドシートは1ファイルにつき1000万セルまでしか作ることができません(昔は200万セルだった)。

当記事ではスプレッドシートのセルを大事に使いたい人のため、

  • GASで空白行を自動削除する方法
  • GASで空白列を自動削除する方法

について解説します。

目次

GASで空白行を自動削除する方法

まず、GASで空白行を自動削除する方法について解説します。

基本的なアルゴリズム

空白行の自動削除は、以下のようなアルゴリズムで処理します。

  1. 実行するシートを指定する
  2. 最終行の値を取得する
  3. 最終行までのfor文を作る
  4. セル値が空白か判定する
  5. 空白ならその行を削除する
  6. for文のカウントを-1する

※最後にカウント変数を-1するのは、行削除を実行した時点でシートの行の順番が1ずれるためです。

サンプルコード(コピペ推奨)

空白行を自動削除してくれるスクリプトのサンプルコードを載せておきます。

コピペしたらすぐ動くようになっているので、ぜひお試しください。


function removeRows{
 //①実行するシートを指定する
 var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
 var sheet = spreadsheet.getSheetByName('<シート名>');
 //②最終行の値を取得する
 var lastRow = sheet.getLastRow();
 //③最終行までのfor文を作る
 for(var i=1; i<=lastRow; i++){
  //④セル値が空白か判定する
  var cell = sheet.getRange(i,1);
  if(cell.isBlank){
   //⑤空白ならその行を削除する
   sheet.deleteRow(i);
  }
  //⑥for文のカウントを-1する
  i++;
}

GASで空白列を自動削除する方法

続いて、GASで空白行を自動削除する方法について解説します。

基本的なアルゴリズム

空白列を自動削除するアルゴリズムですが、基本的には空白行の自動削除とやることは変わりません。

空白列の自動削除は以下のようなアルゴリズムで処理します。

  1. 実行するシートを指定する
  2. 最終列の値を取得する
  3. 最終列までのfor文を作る
  4. セル値が空白か判定する
  5. 空白ならその列を削除する
  6. for文のカウントを-1する

サンプルコード(コピペ推奨)

空白行と同じように、空白列を自動削除してくれるスクリプトのサンプルコードを載せておきます。

こちらもコピペしたらすぐ動くので、ぜひお試しください。


function removeColumns{
 //①実行するシートを指定する
 var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
 var sheet = spreadsheet.getSheetByName('<シート名>');
 //②最終列の値を取得する
 var lastColumn = sheet.getLastColumn();
 //③最終列までのfor文を作る
 for(var j=1; j<=lastColumn; j++){
  //④セル値が空白か判定する
  var cell = sheet.getRange(1,j);
  if(cell.isBlank){
   //⑤空白ならその列を削除する
   sheet.deleteColumn(j);
  }
  //⑥for文のカウントを-1する
  j--;
}

おまけ:行と列を同時に削除

最後におまけで、空白の行と列を同時に削除してくれるスクリプトを載せておきます。

使い道がありそうなら、ぜひご使用ください。


function removeColumns{
 //①実行するシートを指定する
 var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
 var sheet = spreadsheet.getSheetByName('<シート名>');
 //②最終行と最終列の値を取得する
 var lastRow = sheet.getLastRow();
 var lastColumn = sheet.getLastColumn();
 //③最終行までのfor文を作る
 for(var i=1; i<=lastRow; i++){
  //④セル値が空白か判定する
  var cell = sheet.getRange(i,1);
  if(cell.isBlank){
   //⑤空白ならその列を削除する
   sheet.deleteRow(i);
  }
  //⑥for文のカウントを-1する
  i--;
 }
 //③最終列までのfor文を作る
 for(var j=1; j<=lastColumn; j++){
  //④セル値が空白か判定する
  var cell = sheet.getRange(1,j);
  if(cell.isBlank){
   //⑤空白ならその列を削除する
   sheet.deleteColumn(j);
  }
  //⑥for文のカウントを-1する
  j--;
 }
}

まとめ

今回は「GASで空白行を自動削除する方法」「GASで空白列を自動削除する方法」について解説しました。

余分な空白やデータはそれだけで容量をくってしまうので、極力つくらず、定期的に削除することをおすすめします(余白によって見やすくなる場合は別ですが)。

当記事で紹介したサンプルコードはコピペすればすぐに使えるので、気になった方は無断で使用いただいて大丈夫です。

では、また。

あわせて読みたい
【GAS】Google Apps Scriptをスプレッドシートで使う手順まとめ Google Apps Script(GAS)を業務に使う際、真っ先に思い浮かぶのがスプレッドシートとの連携ですよね。自分もGASを独学で学ぶときには、最初にスプレッドシートでGASを...

あわせて読みたい
GASの勉強におすすめの入門本ランキング18選!【学習方法も解説】 「GAS(Google Apps Script)を勉強したいけど勉強方法がわからない、体系的にまとまっている学習書や良書を知りたい」と困っていませんか? 「プログラミングは体系的...

この記事を書いた人

28歳♂Webアナリスト/おすすめ本と生活改善グッズ紹介サイトmonoblog.jp他4サイト運営15万PVほど/楽天経済圏/リベ大生/サウナ/筋トレ/お仕事の依頼はこちら

目次