【スプレッドシート】スクリプトで範囲・セルの値を取得する方法|Google Apps Script

今回は、Google スプレッドシートでGoogle Apps Script (GAS)を利用して、セル内・範囲内に入力されている値を取得する、いくつかの方法となります。

範囲の値を取得する例

以下、範囲内の値を取得するそれぞれの例となり、スクリプトエディタに記述します。また、例では取得した結果をログに出力しています。

データが入力されている範囲の値を取得

以下の例では、データが入力されている範囲内にある値を、行・列の2次元配列ですべて取得しています。

function myFunction(){
  var sheet = SpreadsheetApp.getActiveSheet(); 
  var values = sheet.getDataRange().getValues();
  console.log(values);
}

上記の関数内では、現在のシートに対して、SheetクラスのgetDataRangeメソッドでデータが入力されている範囲を取得しています。

指定した範囲の値を取得

以下のそれぞれの例では、指定した範囲内(B3:E6)にある値を、行・列の2次元配列ですべて取得しています。

行番号・列番号・行数・列数から取得

function myFunction(){
  var sheet = SpreadsheetApp.getActiveSheet(); 
  var values = sheet.getRange(3,2,3,4).getValues();
  console.log(values);
}

上記の関数内では、現在のシートに対して、SheetクラスのgetRangeメソッドで指定した範囲を取得しています。

getRangeメソッドの引数の指定方法はいくつかありますが、上記では引数に行番号・列番号・行数・列数を指定して範囲を取得しています。

第1引数には先頭のセルの行番号、第2引数には先頭のセルの列番号を指定します。(列番号は、Aの列番号は 1、Bの列番号は2 のように、列のアルファベット順を数値順に置き換えた値)

第3引数には取得する行数、第4引数には取得する列数を指定します。(行数・列数は、指定した先頭のセルから数えた値を指定)

GASで行数・列数を取得する場合

また、GASで行数・列数を取得する方法については、以下のリンク先を参考にしてみてください。

セル番地から取得

function myFunction(){
  var sheet = SpreadsheetApp.getActiveSheet(); 
  var 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(){
  var sheet = SpreadsheetApp.getActiveSheet(); 
  var values = sheet.getActiveRange().getValues();
  console.log(values);
}

上記の関数内では、現在のシートに対して、SheetクラスのgetActiveRangeメソッドで選択中の範囲を取得しています。

セルの値を取得する例

以下、セル内の値を取得するそれぞれの例となり、スクリプトエディタに記述します。また、例では取得した結果をログに出力しています。

指定したセルの値を取得

以下のそれぞれの例では、指定したセル(D2)の値を取得しています。

行番号・列番号から取得

function myFunction(){
  var sheet = SpreadsheetApp.getActiveSheet(); 
  var value = sheet.getRange(2,4).getValue();
  console.log(value);
}

上記の関数内では、現在のシートに対して、SheetクラスのgetRangeメソッドで指定したセルの範囲を取得しています。

getRangeメソッドの引数の指定方法はいくつかありますが、上記では引数に行番号・列番号を指定してセルの範囲を取得しています。

第1引数には行番号、第2引数には列番号を指定します。(列番号は、Aの列番号は 1、Bの列番号は2 のように、列のアルファベット順を数値順に置き換えた値)

セル番地から取得

function myFunction(){
  var sheet = SpreadsheetApp.getActiveSheet(); 
  var value = sheet.getRange("D2").getValue();
  console.log(value);
}

上記の関数内では、現在のシートに対して、SheetクラスのgetRangeメソッドで指定したセルの範囲を取得しています。

getRangeメソッドの引数の指定方法はいくつかありますが、上記では引数にセル番地を文字列で指定してセルの範囲を取得しています。また、引数には"シート02!D2"のようにシート名の指定も可能です。

また、例の引数はA1型の表記でしたがR1C1型でも指定可能。(R1C1型では「R」はRow(行)、「C」はColumn(カラム)を意味し、それらR・Cの数値順でセル番地を表します。)

選択中のセルの値を取得

以下の例では、選択中のセルの値を取得しています。

function myFunction(){
  var sheet = SpreadsheetApp.getActiveSheet(); 
  var value = sheet.getCurrentCell().getValue();
  console.log(value);
}

上記の関数内では、現在のシートに対して、SheetクラスのgetCurrentCellメソッドで選択中のセルの範囲を取得しています。

範囲の値を取得できるgetValues()・getValue()について

上記例で利用しているgetValuesメソッド・getValueメソッドは、範囲に対して利用できるRangeクラスのメソッドとなり、範囲内の値を取得できます。

getValuesメソッド

getValuesメソッドでは、範囲内の値を行・列の2次元配列で取得します。

最初の配列は行ごとなり、その要素の配列が列の値となります。また、空セルの場合は空の文字列を返します。

getValueメソッド

getValueメソッドでは、範囲内の最初の値(範囲内の左上の値)を取得します。また、空セルの場合は空の文字列を返します。

参考サイトなど

コメント投稿コメント投稿欄を開く

コメントは、項目欄(*は必須項目)を入力し、「コメントを送信」ボタンをクリックしてください。 (メールアドレスは公開されることはありません。コメントの公開は承認制となります。)

Twitterで返信する場合はこちらから。