getRange()メソッドは、Google Apps Script(GAS)でスプレッドシート内の特定のセル範囲にアクセスして、データ取得するための重要なメソッドです。
本記事では、getRange()の操作方法について、図解を使って解説していきます。
この記事で解決できること
はじめに
用語についての注意
本記事では、セル範囲を指定する際に列数や行数に関する用語が出てきます。
これらの用語について、省略名を用いて解説していきます。
例えば、行番号は「row」、列番号は「col」と表記します。これにより、よりわかりやすく簡潔な説明を提供します。
和名 | 英名 | 省略名 |
---|---|---|
行番号 | row | row |
列番号 | column | col |
行数 | number of Rows | numRows |
列数 | number of Column | numCols |
getRange()のセルの範囲指定方法を紹介
よく使われる操作方法は以下の3つです。
- sheet.getRange(‘A1表記’):単一セルの指定
- sheet.getRange(row,col):単一セルの指定
- sheet.getRange(row, numRows, col, numCols):複数範囲のセルの指定
A1表記を使用した指定
sheet.getRange(‘A1表記’):単一セルの指定

A1表記とは、セルの列と行を組み合わせた方法で、列のアルファベットと行番号を組み合わせてセルを特定します。
例えば、B1の値を取得したい場合は、列B行1のセルを指します。
スクリプト例
let cellB1 = sheet.getRange('B1'); // 列B行3のセル
getRangeで範囲指定したセルに値を入れるために、setValueというメソッドを頻繁に使用します。
GASでgetRangeと併用する必須メソッドですので、ぜひ一緒に学習することをオススメします。
まだsetValueを知らないという方は下記の解説記事もご覧ください。

行と列の数値を使用した指定
行と列の数値を使用してセルを指定する方法は、getRange()メソッドの引数として行番号と列番号を指定する方法です。
この方法は、A1表記の代わりに数値を直接使用するため、簡潔で直感的な方法です。
以下に、行と列の数値を使用したセル範囲指定の詳細と具体例を示します。
sheet.getRange(row,col):単一セルの指定

行番号と列番号を指定するだけで、単一のセルを指定できます。
例えば、getRange(2, 3)はスプレッドシートの2行目(C列:3列目)のセルを指します。
// 行番号と列番号を使用してセルを指定
var cellRow3Col2 = sheet.getRange(2, 3); // 行2列3のセル (C2)
sheet.getRange(row, numRows, col, numCols):複数範囲のセルの指定

getRange()メソッドの引数に行数と列数を指定します。
例えば、getRange(1, 2, 1, 2)はスプレッドシートの2行目の(C列からD列)のセル範囲を指します。
上記の図解の通り、(下, 右, 下, 右)と指定したら、最後の(下,右)の部分のデータを取得できると覚えてしまいましょう。
// 複数のセル範囲を指定する場合
var rangeRow1to2Col1to2 = sheet.getRange(1, 2, 1, 2); // 行2-2 列3-4のセル範囲 (C2:D2)
これらの範囲指定方法を使うことで、getRange()メソッドを用いてスプレッドシート内の特定のセル範囲を取得できます。
このセル範囲を操作することで、データの読み書きや書式設定、計算などの操作を行うことができます。
また、これらの指定方法は複数列や複数行のセル範囲にも適用でき、データの一括処理などに活用することができます。
getRange()のよくある質問
離れたセルを一度に指定する方法はありますか?
GASのgetRange()メソッドを使用して、離れたセルを一度に指定する方法はありません。
しかし、セル範囲を連続する形で指定するだけでなく、複数のgetRange()メソッドを使用してセル範囲を組み合わせることで、非隣接のセルも指定できるようになります。
例えば、以下のようにセル範囲を組み合わせることで離れたセルを指定できます。
let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
let rangeA1 = sheet.getRange('A1');
let rangeC3 = sheet.getRange('C3');
let combinedRange = rangeA1.merge(rangeC3);
列全体を一度に指定する方法はありますか?
はい、列全体を一度に指定する方法があります。
列全体を指定するには、列番号の代わりに列のアルファベットを使用してセル範囲を指定します。例えば、列A全体を指定する場合はgetRange(‘A:A’)と指定します。
let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
let columnA = sheet.getRange('A:A'); // 列A全体
最終行や最終列だけ指定する方法はありますか?
はい、最終行や最終列だけを指定する方法があります。
getLastRow()メソッドやgetLastColumn()メソッドを組み合わせて使用することで、シートの最終行や最終列を取得し、それを元にセル範囲を指定します。
let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
let lastRow = sheet.getLastRow();
let lastColumn = sheet.getLastColumn();
let rangeLastRow = sheet.getRange(lastRow, 1, 1, lastColumn); // 最終行のセル範囲
let rangeLastColumn = sheet.getRange(1, lastColumn, lastRow, 1); // 最終列のセル範囲
セルの範囲を配列で取得することはできますか?
はい、セルの範囲を配列で取得することができます。
getValues()メソッドを使用して、指定したセル範囲の値を二次元配列として取得できます。
let sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
let range = sheet.getRange('A1:B2');
let valuesArray = range.getValues(); // セル範囲の値を配列で取得
最後に
getRange()メソッドの基本的な使い方から、よくある質問についても解説しました。
getRange()は、スプレッドシート内の特定のセル範囲にアクセスするための鍵となる存在です。
GASでスプレッドシートの操作をする場合は、必ずと言って良いほど使用される頻出度の高い関数です。
何度もコーディングして使いこなしましょう。

