GASでスプレッドシートの列を削除する方法(deleteColumn)

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

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

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

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

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

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

不要な列については非表示にすることもできますが、データを参照することがなければ、削除もできます。

スプレッドシートの利点として、列を削除すると、削除列以降に設定された数式の参照が、削除に応じた反映される点があります。

特に表を作った際に、合計値や割合など計算式が入るケースが多いですが、列削除しても、そうした数式を変更する必要がありません。

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

スプレッドシートの各種操作はGoogle Apps Script(GAS)のスクリプトからも実行ができます。

シートの列削除についても同様で、GASのメソッドを使って列削除が可能です。

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

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

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

  1. deleteColumn
  2. deleteColumns

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

deleteColumn:指定位置の1列を削除

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

Sheet.deleteColumn(削除したい列番号)

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

deleteColumns:指定列から指定列数を削除

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

Sheet.deleteColumn(削除したい列番号,削除したい列数)

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

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

Google Apps Script(GAS)で実際に、deleteColumnやdeleteColumnsメソッドを使ってスプレッドシートの列を削除するサンプルコードを紹介します。

function delColumn() {
  //スクリプトに紐づいたスプレッドシートのアクティブなシートを読み込み
  let mySheet = SpreadsheetApp.getActiveSheet();
  //deleteColumnメソッドで引数指定した1列を削除
  mySheet.deleteColumn(2);
}

GASのdeleteColumnメソッドで指定した1列を削除する関数delColumnです。

上記のスプレッドシートに対し、delColumnのGASコードを実行すると、2列目が削除されます。

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

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

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

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

まとめ・終わりに

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

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

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

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