【GAS】getRangeの選択範囲を画像で解説

スプレッドシートでGASを使う際には必要不可欠なgetRangeによる範囲選択を画像を使って解説していきます。

getRangeでの範囲選択

今回はこのような表を例に解説をしていきます。

単一セルを選択する

sheet.getRange(2, 1) // 行, 列

この場合、囲んだ範囲が選択されます。

複数行を一度に選択する

sheet.getRange(2, 1, 3) // 行, 列, 列数

この場合、最初の二つの引数で指定したセルから3番目の引数の列数分が選択されます。

複数行、列を選択する

sheet.getRange(2, 1, 3, 4) // 行, 列, 行数, 列数

この場合、最初の二つの引数で指定したセルから3、4番目の引数の行、列分が選択されます。文章だと分かりづらいので画像で確認してみましょう。

A1表記、R1C1表記で選択する

sheet.getRange("A1")

または、シートを含めて指定もできます。

spreadsheet.getRange("社員名簿!A2:B3")

複数の範囲を同時に選択する

sheet.getRangeList(["A2:B4", "D2:E4"])

配列の形式で範囲を指定します。

このとき、getRangeListの結果で取得されるのはRangeListというクラスです。

通常のRangeと違いそのままでは、値は取り出せないのでgetRangesを使って配列形式のRangeを取得してから値を取得します。

  const ranges = sheet.getRangeList(['A2:B4', 'D2:E4'])
  const values = ranges.getRanges()
  console.log(values[0].getValues()) // [ [ 1, '社員太郎' ], [ 2, '社員次郎' ], [ 3, '社員三郎' ] ]
  console.log(values[1].getValues()) // [ [ 1990, '社長室' ], [ 1995, '営業本部' ], [ 2010, 'システム本部' ] ]

RangeListのドキュメントはこちら。

https://developers.google.com/apps-script/reference/spreadsheet/range-list

データがある範囲を取得する方法

スプレッドシートのデータは日々増えていくものです、その都度GASの範囲選択の部分を書き換えていくのは手間がかかります。

データがある範囲をシートから調べて、自動的に指定するコードを紹介します。

sheet.getRange(1, 1, sheet.getLastRow(), sheet.getLastColumn())
getLastRowデータがある最後の行数を数値で返却する
getLastColumnデータがある最後の列数を数値で返却する

この図の場合は、getLastRowは4、getLastColumnは6が返却されます。

まとめ

今回は、スプレッドシートでGASを使う際には必要不可欠なgetRangeによる範囲選択を画像を使って解説しました。

今回紹介した以外にも範囲選択のやり方はありますが、よく使う基本的なやりかたは今回紹介した内容です。各関数の使い方と選択のイメージを覚えておくと素早くコードが書けるようになり開発スピードがアップしますので、ぜひ数をこなしてマスターしてみてください。

GASをイチから学びたい方へ

このブログでは断片的な説明になってしまっていますが、本書は幅広いGASの内容が網羅的に学べる本です。イチから学びたい方は是非読んでみてください。

すでにGASをある程度マスターした方にも辞書的に手元に置いておくと便利です。