コンテンツにスキップ

範囲の値を取得する

スプレッドシートから、特定の範囲の値を取得する方法を解説します。

Sheet.getSheetValues([開始行], [開始列], [行数], [列数]);

Sheet クラスに用意されている、getSheetValues() を使用します。

なお、Spreadsheet クラスにも同名のメソッドが用意されていますが、ここでは対象のシートを明示できる Sheet クラスのメソッドを使用します。

引数は 4 つ必要で、それぞれ開始行、開始列、行数、列数を指定します。

例えば、対象シートのセル C2 から 4 行 × 5 列の範囲(C2:G5)を取得したい場合は、getSheetValues(2, 3, 4, 5) と指定します。

返り値は値の 2 次元配列(Object[][])として受け取ることができます。セルの内容に応じて、各要素は数値・真偽値・日付(Date)・文字列のいずれかになります。

これは sheet.getRange(2, 3, 4, 5).getValues() と同じ結果になります。

実行にあたってスプレッドシートにアクセスすることになるため、初回実行時に認証が必要になる場合があります。

/**
* 対象スプレッドシートのID
* https://docs.google.com/spreadsheets/d/〇〇〇/edit の〇〇〇の部分
*/
const SPREAD_SHEET_ID = '_______________';
/**
* 指定した範囲の値を取得します
*/
const getSheetValues = () => {
/** 対象スプレッドシート */
const ss = SpreadsheetApp.openById(SPREAD_SHEET_ID);
/** 対象シート */
const sheet = ss.getSheetByName('シート1');
if (!sheet) {
console.log('シートが見つかりませんでした');
return null;
}
/** 取得したデータ */
const arrays = sheet.getSheetValues(2, 3, 4, 5);
console.log(arrays);
return arrays;
};

実行すると、指定したスプレッドシートの「シート1」について、C2 から 4 行 × 5 列の範囲(C2:G5)の値が返されます。