【GAS・スプレッドシート】範囲・セルの値を取得する方法|選択中や指定した範囲の値

今回は、Google スプレッドシートでGoogle Apps Script (GAS)を利用して、セル内・範囲内に入力されている値を取得する、いくつかの簡単な例となります。
範囲の値を取得する例|getValues()
範囲の値はRangeクラスのgetValuesメソッドで取得します。
getValuesメソッドでは、指定した範囲の値を行・列の2次元配列で取得します。2次元配列は、外側の配列が行となり、その要素の配列が列の値となります。
以下、範囲の値を取得するそれぞれの例となり、スクリプトエディタに記述します。また、例では取得した結果をログに出力しています。
データが入力されている範囲の値を取得
以下の例では、データが入力されている範囲にある値を、行・列の2次元配列ですべて取得しています。
function myFunction(){
const sheet = SpreadsheetApp.getActiveSheet();
const values = sheet.getDataRange().getValues();
console.log(values);
}
例の関数内では、現在のシートに対して、SheetクラスのgetDataRangeメソッドでデータが入力されている範囲を取得しています。
指定した範囲の値を取得
以下のそれぞれの例では、指定した範囲(B3:E6)にある値を、行・列の2次元配列ですべて取得しています。
行番号・列番号・行数・列数から取得
function myFunction(){
const sheet = SpreadsheetApp.getActiveSheet();
const values = sheet.getRange(3,2,4,4).getValues();
console.log(values);
}
例の関数内では、現在のシートに対して、SheetクラスのgetRangeメソッドで指定した範囲を取得しています。
getRangeメソッドの引数の指定方法はいくつかありますが、上記では引数に行番号・列番号・行数・列数を指定して範囲を取得しています。
第1引数には先頭のセルの行番号、第2引数には先頭のセルの列番号を指定します。(列番号は、Aの列番号は 1、Bの列番号は2 のように、列のアルファベット順を数値順に置き換えた値)
第3引数には取得する行数、第4引数には取得する列数を指定します。(行数・列数は、指定した先頭のセルから数えた値を指定)
また、GASで行数・列数を取得する方法については、以下のリンク先を参考にしてみてください。
セル番地から取得
function myFunction(){
const sheet = SpreadsheetApp.getActiveSheet();
const values = sheet.getRange("B3:E6").getValues();
console.log(values);
}
例の関数内では、現在のシートに対して、SheetクラスのgetRangeメソッドで指定した範囲を取得しています。
getRangeメソッドの引数の指定方法はいくつかありますが、上記では引数に範囲のセル番地を指定して範囲を取得しています。また、引数には"シート02!B3:E6"のようにシート名の指定も可能です。
また、例の引数はA1型の表記でしたがR1C1型でも指定可能。(R1C1型では「R」はRow(行)、「C」はColumn(カラム)を意味し、それらR・Cの数値順でセル番地を表します。)
選択中の範囲の値を取得
以下の例では、選択中の範囲にある値を、行・列の2次元配列ですべて取得しています。
function myFunction(){
const sheet = SpreadsheetApp.getActiveSheet();
const values = sheet.getActiveRange().getValues();
console.log(values);
}
例の関数内では、現在のシートに対して、SheetクラスのgetActiveRangeメソッドで選択中の範囲を取得しています。
セルの値を取得する例|getValue()
セルの値はRangeクラスのgetValueメソッドで取得します。
以下、セルの値を取得するそれぞれの例となり、スクリプトエディタに記述します。また、例では取得した結果をログに出力しています。
指定したセルの値を取得
以下のそれぞれの例では、指定したセル(D2)の値を取得しています。
行番号・列番号から取得
function myFunction(){
const sheet = SpreadsheetApp.getActiveSheet();
const value = sheet.getRange(2,4).getValue();
console.log(value);
}
例の関数内では、現在のシートに対して、SheetクラスのgetRangeメソッドで指定したセルの値を取得しています。
getRangeメソッドの引数の指定方法はいくつかありますが、上記では引数に行番号・列番号を指定してセルの範囲を取得しています。
第1引数には行番号、第2引数には列番号を指定します。(列番号は、Aの列番号は 1、Bの列番号は2 のように、列のアルファベット順を数値順に置き換えた値)
セル番地から取得
function myFunction(){
const sheet = SpreadsheetApp.getActiveSheet();
const value = sheet.getRange("D2").getValue();
console.log(value);
}
例の関数内では、現在のシートに対して、SheetクラスのgetRangeメソッドで指定したセルの値を取得しています。
getRangeメソッドの引数の指定方法はいくつかありますが、上記では引数にセル番地を指定してセルの範囲を取得しています。また、引数には"シート02!D2"のようにシート名の指定も可能です。
また、例の引数はA1型の表記でしたがR1C1型でも指定可能。(R1C1型では「R」はRow(行)、「C」はColumn(カラム)を意味し、それらR・Cの数値順でセル番地を表します。)
選択中のセルの値を取得
以下の例では、選択中のセルの値を取得しています。
function myFunction(){
const sheet = SpreadsheetApp.getActiveSheet();
const value = sheet.getCurrentCell().getValue();
console.log(value);
}
例の関数内では、現在のシートに対して、SheetクラスのgetCurrentCellメソッドで選択中のセルの値を取得しています。
getValues()・getValue()について
上記例で利用しているgetValuesメソッド・getValueメソッドは、範囲に対して利用できるRangeクラスのメソッドとなり、指定した範囲の値を取得できます。
取得できる値は、数値・文字列・真偽値・日付となります。また、空セルの場合は空の文字列を返します。
範囲・セルに値を入力する場合
範囲・セルに値を入力する方法は、以下のリンク先を参考にしてみてください。