GASでスプレッドシートの列を追加する5つ方法(insertColumns)

2021年11月4日

スプレッドシートでは列を追加する操作の機会が多いですが、Google Apps Script(GAS)でも列追加を実行可能です。

GASのスクリプトでスプレッドシートの列を追加する方法を解説します。

スプレッドシートの列を追加

スプレッドシートで表データを扱っている場合に特定列の前後に項目を追加したいケースがあります。

そんな時スプレッドシートのシート操作で列を簡単に追加することができます。

スプレッドシートの列を追加する操作

追加挿入したい列を上部のアルファベットを右クリックすると、メニューが表示されます。

選択列の前に追加したい場合は「1列を左に挿入」、後ろに追加したい場合は「1列を右に挿入」を選択します。

さらに、複数列を選択した状態で同様の操作をすると、選択列分の列追加が可能です。

GASでスプレッドシートの列追加が可能

Google Apps Script(GAS)でも、スプレッドシートのGUIを操作するのと同じように、シートに列を追加することができます。

スプレッドシートにデータをGAS記録するスクリプトなどで、すでにデータがある範囲にデータを追加挿入していきたい場合に列追加のコードが有効です。

そうすることで、人間の手をかけることなく、GASでスプレッドシートの列追加が自動化できます。

スプレッドシートの列を追加する5つのGASメソッド

スプレッドシートの列を追加するGoogle Apps Script(GAS)のメソッドには、5種類ほどあります。

  1. Sheet.insertColumnBefore(追加する列番号)
  2. Sheet.insertColumnAfter(追加する列番号)
  3. Sheet.insertColumnsBefore(追加する列番号, 追加列数)
  4. Sheet.insertColumnsAfter(追加する列番号, 追加列数)
  5. Sheet.insertColumns(追加する列番号,(追加列数))

いずれもスプレッドシートのSheetクラスで実行できるメソッドです。

insertColumnBeforeは追加する列番号の前(左)に1列挿入するメソッドに対し、insertColumnAfterは追加する列番号の後ろ(右)に1列挿入するメソッドです。

insertColumnBefore/insertColumnAfterはどちらもシートに追加できる列の数が1列のみになります。

それに対し、insertColumnsBefore(insertColumnsAfter)はカラムが複数系になっている通り、複数列の追加挿入が可能です。

第一引数で追加する列番号を指定し、第二引数で追加する列数を指定します。

最後5つ目のinsertColumnsは第一引数で追加する列番号を必須で指定し、第二引数で追加列数をオプションで指定できるメソッドです。

第一引数のみ設定したinsertColumnsメソッドはinsertColumnBeforeメソッドと同様で、第二引数も設定すると、insertColumnsBeforeと同様になります。

なお、列追加のメソッドはSheetクラス限定で、SpreadsheetクラスやRangeクラスでは利用できないので注意しましょう。

列を追加する各メソッドの実行例

実際に列を追加する各種のメソッドを実行するGoogle Apps Script(GAS)のサンプルコードを紹介します。

function addColumn() {
  //スクリプトに紐づいたスプレッドシートのアクティブなシートを読み込む
  let mySheet = SpreadsheetApp.getActiveSheet();
  
  //----指定した位置の前後に1列追加するメソッド----
  //insertColumnBeforeで引数指定した列の前(左)に列追加
  mySheet.insertColumnBefore(2);
  //insertColumnAfterで引数指定した列の後ろ(右)に列追加
  mySheet.insertColumnAfter(5);
  //----指定した位置の前後に複数列追加するメソッド----
  //insertColumnsBeforeで引数指定した列の前(左)に4列追加
  mySheet.insertColumnsBefore(2,4);
  //insertColumnsAfterで引数指定した列の後ろ(右)に4列追加
  mySheet.insertColumnsAfter(5,4);
  
  //insertColumnsで指定した位置に列を挿入(第二引数で列数も指定可能)
  mySheet.insertColumns(10);
}
Google Apps Script(GAS)でスプレッドシートの列を追加する5種類のinsertColumnメソッド

5種類のinsertColumn(s)メソッドはそれぞれ前述で説明したような列追加の挙動を示します。

複数行追加する場合、insertColumnsBefore(insertColumnsAfter)で、追加したい方向で使い分けましょう。

GASで行追加も可能

ここまではスプレッドシートの列を追加する方法を、Google Apps Script(GAS)のメソッドを解説しながら、サンプルコードを紹介してきました。

列とメソッドは異なりますが、同様の方法でスプレッドシートのシートの列追加もGASスクリプトで可能です。

GASでの行追加の仕組みは、列追加と変わらないので、簡単に覚えることができます。

まとめ・終わりに

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

GASにはスプレッドシートのシートの列を追加するメソッドが5種類用意されています。

それぞれ追加する列の方向が前か後ろか、追加列数が1列か複数列かでメソッドを使い分ける仕組みです。

スプレッドシートにデータをどんどん追加していくGASの自動化スクリプトでは、列を追加挿入できる機能を使えば、データの末尾だけでなく途中に差し込むことができます。

スプレッドシートのGAS操作で列をより使いこなすために、ぜひinsertColumn(s)系メソッドを覚えましょう。