GASでスプレッドシートの行を追加する5つ方法(insertRows)
スプレッドシートでは新しいデータを行の途中に追加したい場合に行追加を行いますが、Google Apps Script(GAS)でも行を追加することができます。
GASスクリプトでスプレッドシートの行を追加する方法を解説します。
スプレッドシートの行を追加
スプレッドシートで表データを扱っている場合に、既存の行の間にデータを追加したいケースがあります。
データ入力が漏れていた場合に、タイムスタンプ的にこれまでのデータに差し込みたい場合に、行を追加したうえでデータを入力します。
そんな時スプレッドシートのシート操作で行を簡単に追加することができます。
追加挿入したい行の番号部分を右クリックすると、メニューが表示されます。
選択行の前に追加したい場合は「1行を上に挿入」、後ろに追加したい場合は「1行を下に挿入」を選択します。
さらに、複数行を選択した状態で同じ操作をすると、選択した行数分の行追加が可能です。
GASでスプレッドシートの行追加が可能
Google Apps Script(GAS)でも、スプレッドシートのGUIを操作と同様の、シートに行を追加することができます。
スプレッドシートにデータをGAS記録するスクリプトなどで、すでにデータがある範囲にデータを追加挿入していきたい場合に行追加のコードが有効です。
そうすることで、人間の手をかけることなく、GASでスプレッドシートの行を追加する処理が自動化できます。
スプレッドシートの行を追加する5つのGASメソッド
スプレッドシートの行を追加するGoogle Apps Script(GAS)のメソッドには、5種類ほどあります。
- Sheet.insertRowBefore(追加する行番号)
- Sheet.insertRowAfter(追加する行番号)
- Sheet.insertRowsBefore(追加する行番号, 追加行数)
- Sheet.insertRowsAfter(追加する行番号, 追加行数)
- Sheet.insertRows(追加する行番号,(追加行数))
いずれもスプレッドシートのSheetクラスで実行できるメソッドです。
insertRowBefore(insertRowAfter)
insertRowBeforeメソッドは、引数に指定した行番号の前(上)に1行追加します。
そのため、実行後、追加した行が引数に指定した行番号になります。
それに対し、insertRowAfterメソッドは引数に指定した行番号の後(下)に1行を追加します。
insertRowAfter実行後、追加した行は、引数に指定した行番号よりも1つ後ろの位置になっています。
insertRowsBefore(insertRowsAfter)
insertRowsBeforeとinsertRowsAfterは、前述の2つのメソッドが1行追加だったのに対し、複数行の追加挿入が可能です。
第二引数に追加したい行数を設定しますが、例えば4と指定すると、指定の位置の前後に4行を追加してくれます。
insertRowsBefore(insertRowsAfter)の第二引数を1にすると、insertRowBefore(insertRowAfter)と変わらない挙動になります。
insertRows
最後5つ目のinsertRowsは第一引数で追加する行番号を必須で指定し、第二引数で追加行数をオプションで指定できるメソッドです。
第一引数のみ設定したinsertRowsメソッドはinsertRowBeforeメソッドと同様で、第二引数も設定すると、insertRowsBeforeと同様になります。
うまく活用すればinsertRowsメソッドでほかのメソッドをすべて代替することもできるので、覚える量を少なくしたい場合は、insertRowsに絞るのも選択肢の1つです。
なお、行追加のメソッドはSheetクラス限定のため、SpreadsheetクラスやRangeクラスでは利用できないので注意しましょう。
行を追加する各GASメソッドの実行例
実際にスプレッドシートに行を追加する各種のメソッドを実行するGoogle Apps Script(GAS)のサンプルコードを紹介します。
function addRow() {
//スクリプトに紐づいたスプレッドシートのアクティブなシートを読み込む
let mySheet = SpreadsheetApp.getActiveSheet();
//----指定した位置の前後に1行追加するメソッド----
//insertRowBeforeで引数指定した行の前(上)に行追加
mySheet.insertRowBefore(2);
//insertRowAfterで引数指定した行の後ろ(下)に行追加
mySheet.insertRowAfter(5);
//----指定した位置の前後に複数行追加するメソッド----
//insertRowsBeforeで引数指定した行の前(上)に4行追加
mySheet.insertRowsBefore(2,4);
//insertRowsAfterで引数指定した行の後ろ(下)に4行追加
mySheet.insertRowsAfter(5,4);
//insertRowsで指定した位置に行を挿入(第二引数で行数も指定可能)
mySheet.insertRows(10);
}
GASスクリプトを実行すると、5種類のinsertRow(s)メソッドはそれぞれ前述で説明したように行追加します。
複数行追加する場合、insertRowsBefore(insertRows)またはinsertRowsAfterメソッドを、指定行の上か下か追加したい方向で使い分けましょう。
GASで列を追加することも可能
ここまではスプレッドシートの行を追加する方法をメソッドを解説しながら、サンプルコードを紹介してきました。
行と同じような方法で、スプレッドシートのシートの列追加もGoogle Apps Script(GAS)で可能です。
GASでの列追加の仕組みは、行追加の場合と同様なので、簡単にマスターできます。
まとめ・終わりに
今回、Google Apps Script(GAS)のスクリプトからスプレッドシートの行を追加する方法を紹介しました。
GASにはスプレッドシートのシートの行を追加するメソッドが5種類用意されています。
それぞれ追加する行の方向が前(上)か後ろ(下)か、追加列数が1列か複数列かでメソッドを使い分ける仕組みです。
スプレッドシートにデータをどんどん追加していくGASの自動化スクリプトでは、行を追加挿入できる機能を使えば、データの末尾だけでなく途中に差し込むことができます。
スプレッドシートのGAS操作で行をより使いこなすために、ぜひinsertRow(s)系メソッドを覚えましょう。
ディスカッション
コメント一覧
まだ、コメントがありません