Google Apps Script スプレッドシートの指定されたセルの範囲にアクセスする方法

Google Apps Script

こんにちは、ばばーるです。

スポンサーリンク

前回のおさらい

前回はスプレッドシートのシートにアクセスする方法をご紹介しました。

  • スクリプトはスプレッドシートからも立ち上げることができる
  • getActive()、getActiveSpreadSheet()でスプレッドシートにアクセスできる

今回はスプレッドシートの指定されたセルの範囲にアクセスする方法をご紹介します。

getRangeでセルの範囲を取得する

getRange(): 指定されたセルの範囲を返します。

たぬきさん
たぬきさん

あれ?

.getRangeって入力したら、4つくらい出てくるんだけど…

GAS
GAS

4通りの方法があるんだよ。

使用用途に合ったものを使うといいよ。

たぬきさん
たぬきさん

まじか…ちょっと面倒くさいな…。

getRange(Integer row, Integer column): 指定された座標のセル範囲を返します。Integerは整数という意味です。例えば、getRange()getValues()を使うとセルの値を出力します。

以下のスクリプトではgetRange(1, 1)と入力されているので、1行、1列の値を出力します。

function myFunction() {
  const ss = SpreadsheetApp.getActiveSheet();
  const values = ss.getRange(1, 1).getValues();
  Logger.log(values);
}

スプレッドシートには以下の様にA1~C3までの値が入っているので、

1行、1列の値のA1を出力します。

たぬきさん
たぬきさん

C1を出力したい場合は、getRange(1, 3)を使えばいいんだね?

GAS
GAS

そうだよ。

たぬきさん
たぬきさん

(思ったより簡単かも…)

getRange(Integer row, Integer column, Integer numRows): 指定された座標のセルから指定された行数の範囲を返します。(numRowsはnumber of Rowsという意味です。)例えば、先ほどのgetRange(1, 1)をgetRange(1, 1, 3)と変更すると、範囲A1~A3のセルの値を出力します。

function myFunction() {
  const ss = SpreadsheetApp.getActiveSheet();
  const values = ss.getRange(1, 1, 3).getValues();
  Logger.log(values);
}

getRange(Integer row, Integer column, Integer numRows, Integer numColmuns): 指定された行数と列数で、指定された座標のからのセル範囲を返します。先ほどの、getRange(1, 1, 3)をgetRange(1, 1, 3, 2)とすると範囲A1~B3のセルの値を出力します。

function myFunction() {
  const ss = SpreadsheetApp.getActiveSheet();
  const values = ss.getRange(1, 1, 3, 2).getValues();
  Logger.log(values);
}
たぬきさん
たぬきさん

ちょっと混乱してきた。

行?列?行数?

え?

GAS
GAS

ちょっと落ち着いて。

(行、列、行、列)ってことだけ覚えておけば簡単だから。

getRange(行、列、行数、列数)の順番さえ覚えておけば、
・(行、列 が範囲の開始セルなので、(1、1 は1行1列目のA1セルから、(3、2 は3行2列目のB3セルから範囲開始となります。

・行数、列数)は行数です。入力された数字の分だけのデータを取得します。例えば、getRange(1, 1, 3, 2)と入力した場合、以下の範囲のセルを取得します。

たぬきさん
たぬきさん

少し分かりやすくなった気がする。

行、列、行、列〜♪

getRange(String a1Notation): A1とかA1:C3とかスプレッドシートの表記で指定された範囲を返します。例えば、’A1:C3’をgetRangeに代入すると、セルA1~C3の値を返します。

function myFunction() {
  const ss = SpreadsheetApp.getActiveSheet();
  const values = ss.getRange('A1:C3').getValues();
  Logger.log(values);
}

元々のスプレッドシートはこちら

シート2に以下の様な値が入っている場合、

getRange()の中にシート名と範囲を代入すると、シート2のA1~C3のセルの値を返します。

function myFunction() {
  const ss = SpreadsheetApp.getActiveSheet();
  const values = ss.getRange('シート2!A1:C3').getValues();
  Logger.log(values);
}
たぬきさん
たぬきさん

最後のgetRangeが一番分かりやすい!

これさえあれば使えばいいんじゃない?

GAS
GAS

まあ、分かりやすいけど

指定範囲がプログラム回す度に更新される場合は、数字を代入する方が便利かも。

たぬきさん
たぬきさん

???(なんか難しいこと言ってきた)

まとめ

指定されたセルの範囲にアクセスする方法の4つをご紹介しました。

  1. getRange(Integer row, Integer column): 指定のセルを返す。
  2. getRange(Integer row, Integer column, Integer numRows): 指定のセルから指定した行数のセルの範囲を返す。
  3. getRange(Integer row, Integer column, Integer numRows, Integer numColumns): 指定のセルから指定した行数と列数のセルの範囲を返す。
  4. getRange(String a1Notation): A1とかA1:C3のスプレッドシートの表記で指定された範囲を返します。

GASが「指定範囲がプログラム回す度に更新される場合は、数字を代入する方が便利かも」と言っていたので、次回はfor文でセルの値を取得する方法をご紹介します。

コメント

  1. […] Google Apps Script スプレッドシートの指定されたセルの範囲にアクセスする方… […]

  2. […] Google Apps Script スプレッドシートの指定されたセルの範囲にアクセスする方… […]

タイトルとURLをコピーしました