【初心者向き】GASでgetRangeの使い方を画像で徹底解説
getRangeの使い方を知りたい!
getRange をどう使えばいいかわからない!!
今回は、getRangeの使い方(単一データ、範囲データ、列・行全体)について、徹底的に解説していきます。
私は、700名規模の会社業務の自動化を行い、その中でGASもたくさん使ってきました。
実際に業務で使うことができる知識を、画像と共にわかりやすく解説していきます。
目次(クリックで読みたい部分にジャンプできます)
getRange の主な使い方
まずは、getRangeの主な使い方を覚えておきましょう。
今回扱うデータ
今回は、見出しを含めた5行× 3列 の都道府県のデータを用います。
getRange で "単一" データを取得する場合
注意です!
getRange()と使うためには、スプレッドシートと、シートを指定しなければいけません!
スプレッドシートと、シートを指定する方法は、例えば以下のような形があります。
let sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("<シートの名前を記入>");
詳しくは以下の記事で解説しています。
単一データを取得する場合は、行と列を指定します。
単一データの指定方法
2行3列目のセルのデータを取得するとします。
getRange(2, 3)
と指定します。
getRange( 行 , 列 ) で指定
「たて、よこ」と覚えておきましょう👍
実際に値を取得する方法
値を取得する場合は、先ほど紹介したシートを指定する方法を用います。
//
// シートを指定する
//
let sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("<シートの名前を記入>");
//
//getRangeで2行3列目を指定する。
//
let result = sheet.getRange(2,3).getValue();
//
//実行ログに出力
//
console.log(result);
getValue() は、値を取得する関数です。
getRange で範囲を取得したい場合(getValues() , setValues() の活用)
では、範囲を指定したい場合はどうすればいいでしょうか。
範囲データの指定方法
写真赤枠のセルのデータを取得するとします。
getRange(2, 2 , 3 , 2 )
と指定します。
getRange( 開始行 , 開始列 , 範囲の行幅 , 範囲の列幅 ) で指定
赤枠の開始セルは、2行2列目です。
= 開始行 : 2 開始列 : 2
範囲の行幅は、3 、列幅は、2 です。
= 範囲の行幅 : 3 、範囲の列幅 : 2
になります!
これも、たての後に、よこが変数にきます。
「たて、よこ」で覚えておきましょう👍
実際に値を取得する方法
範囲の値を取得する場合は、先ほど紹介したシートを指定する方法を用います。
//
// シートを指定する
//
let sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("<シートの名前を記入>");
//
//getRangeで2行2列目、行幅3列幅2を指定する。getValues()を使用。
//
let result = sheet.getRange(2,2,3,2).getValues();
//
//実行ログに出力
//
console.log(result);
getValues() は、範囲を取得するときに便利な関数です。
行ごとに配列を組んで、全体を2次元配列で取得することができます。
getRange 列・行 全体を取得したい場合
今度は列、行全体を取得する場合について考えていきましょう。
列、行全体を取得するには、最終行、最終列を指定することで指定することができます。
列全体データの指定方法
写真赤枠のセルのデータを取得するとします。
getRange(1, 2 , sheet.getRange(1, 2).getNextDataCell(SpreadsheetApp.Direction.DOWN).getRow() , 1 )
と指定します。
getRange(開始行 , 開始列 , sheet.getRange(開始行 , 開始列).getNextDataCell(SpreadsheetApp.Direction.DOWN).getRow() , 範囲の列幅 )
範囲の行幅以外先ほどと同じです。
sheet.getRange(開始行 , 開始列).getNextDataCell(SpreadsheetApp.Direction.DOWN).getRow()
この部分で、指定したセルの行の最下段のセルの行数を指定することが可能です。
行全体データの指定方法
写真赤枠のセルのデータを取得するとします。
getRange(2, 1 , 1 , sheet.getRange(2, 1).getNextDataCell(SpreadsheetApp.Direction.DOWN).getRow() )
と指定します。
getRange(開始行 , 開始列 , 範囲の行幅 , sheet.getRange(開始行 , 開始列).getNextDataCell(SpreadsheetApp.Direction.DOWN).getRow() )
こちらは、列全体を指定する場合の逆になったパターンです。
まとめ
今回は、getRangeの使い方について、実際の現場と使っている方法を紹介していきました。
値を取得するには、スプレッドシートとの連携も必要になります。
以下の記事で解説していますので、参考にしてみてください。