GASでスプレッドシートの行を削除する方法(deleteRow,deleteRows)

スプレッドシートで不要な行が発生した場合、シート上で行の削除をすることができます。

今回、Google Apps Script(GAS)でスプレッドシートの行を削除する方法を解説します。

※1行削除する方法と複数行をまとめて削除する方法の2種類紹介します。

スプレッドシートの行を削除

Googleスプレッドシートはパソコンのブラウザで利用するクラウド型の表計算ソフトです。

表計算ソフトでおなじみのエクセルの代替サービスとして、無料で利用できるので多くのユーザーが利用しています。

いろいろなデータをスプレッドシートで扱っていると、不要な行が発生することがあります。

Google Apps Script(GAS)で行を削除する前のスプレッドシート

スプレッドでは使わない行を簡単に削除することができます。

スプレッドシートの利用方法の傾向として、新しいデータが追加されると1行追加しているケースが多いです。

そのため、長年利用しているスプレッドシートは何千行、時には1万行を超えるファイルになることがあります。

GASでスプレッドシートの行を削除が可能

Google Apps Script(GAS)では、スプレッドシートのGUIによる各種操作をスクリプトを通じて実行可能です。

シートの行削除についても同様で、GASのメソッドを使って行を削除することができます。

GASスクリプトで行の削除するプログラムを用意し、スケジュール実行等設定すれば、行削除の自動化を行うことができます。

スプレッドシート行削除のGASメソッドは2種類

Google Apps Script(GAS)で、スプレッドシートの行を削除するメソッドは2種類用意されています。

  1. deleteRow
  2. deleteRows

deleteRowメソッドとdeleteRowsメソッドの違いについて説明します。

deleteRow:指定位置の1行を削除

deleteRowメソッドは引数に指定した位置の行を1行削除します。

Sheet.deleteRow(削除したい行番号)

SheetオブジェクトでdeleteRowメソッドを実行すると、引数した数字の行を1行削除します。

deleteRows:指定行から指定行数を削除

deleteRowsはメソッド名の通り複数形になっているため、第1引数に指定した位置の行を、第2引数に指定した行数分削除します。

Sheet.deleteRow(削除したい行番号,削除したい行数)

「削除したい行番号」から、右方向に「削除したい行数」分の行を削除してくれます。

GASでスプレッドシートの行を削除するサンプルコード

deleteRowやdeleteRowsメソッドによるスプレッドシートの列を削除する、Google Apps Script(GAS)のサンプルコードを紹介します。

スプレッドシートの行を1行または複数行削除するGoogle Apps Script(GAS)のサンプルスクリプト
function delRow() {
  //スクリプトに紐づいたスプレッドシートのアクティブなシートを読み込み
  let mySheet = SpreadsheetApp.getActiveSheet();
  //deleteRowメソッドで引数指定した1行を削除
  mySheet.deleteRow(2);
}

GASのdeleteRowメソッドで指定した1行を削除する関数delRowです。

Google Apps Script(GAS)のdeleteColumnでスプレッドシートの行を1行削除

delRowを実行すると、2行目が削除されます。

続いて、GASのdeleteRowsメソッドで指定行から複数行を削除する関数delRowsです。

function delRows() {
  //スクリプトに紐づいたスプレッドシートのアクティブなシートを読み込み
  let mySheet = SpreadsheetApp.getActiveSheet();
  //deleteRowsメソッドで複数行を削除
  mySheet.deleteRows(2,4);
}

delRowを実行すると、2行目から4行分が削除されます。

Google Apps Script(GAS)のdeleteColumnsでスプレッドシートの行を4行分を削除

このようにGASのdeleteRow(s)メソッドを使い、引数指定した位置の列を削除することができます。

まとめ・終わりに

今回、Google Apps Script(GAS)のスクリプトでスプレッドシートの行を削除する方法を紹介しました。

GASのdeleteRowメソッドまたはdeleteRowsメソッドを使ってシート内の指定位置の行を削除することができます。

行削除をGASスクリプトで自動化することで、行にデータがどんどん追加される場合に、データが増えすぎるのを自動で抑止可能です。

特にスプレッドシートのユースケースとしてデータを行方向に追加していくので、膨大な行数になることがあります。

GASを使えば、そうした行が増えすぎた場合に、不要な行を履歴データに転記し、行を削除する定期メンテナンスの自動化が可能です。

スプレッドシートの行を定期的に削除したい場合は、GASのdeleteRowメソッド活用しましょう。