99
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

getRangeいろいろ(Google Apps Script、SpreadSheet)

はじめに

セルの getRange() の引数の種類がたくさんあって列だっけ?行だっけ?ってよくなるので、各メソッドの使用例と範囲指定のイメージ画像をつけて羅列してみることにしました。

サンプルスプレッドシート

この画像のデータをいろいろ getRange() して、どのように範囲指定できるか 背景色をピンク にして、確認してみます。
image.png

前提

コードに出てくる sheet はアクティブシートで初期化してある前提です。

  var sheet = SpreadsheetApp.getActiveSheet();

getRange(row, column)

  var range = sheet.getRange(1, 4);
  range.setBackground('pink'); // 背景色をピンクに

image.png

列番号(column)について

(ご存知かと思いますが念の為、)引数のcolumnはA列から順番に、1,2,3...となります。rowは1行目、2行目...とそのまんまですね。

image.png

※以降から背景色ピンクにするコードは省略します。

getRange(row, column, numRows)

  var range = sheet.getRange(2, 4, 3);

私はどう範囲指定されるのかイメージしづらかったので、何番目のセルか番号振りました。

  • 範囲指定の開始位置が、2行、4列目のセル
  • 開始位置のセルから3行を範囲指定

image.png

getRange(row, column, numRows, numColumns)

  var range = sheet.getRange(3, 2, 4, 3);

よく忘れるのでこれも番号振ってみました。

  • 範囲指定の開始位置が、3行目、2列目のセル
  • 範囲指定の終了位置のセルが、開始位置のセルから4行、3列目 image.png

getRange(a1Notation)

  // アクティブシートのとき
  var range = sheet.getRange('C1');

  // シート名を指定するとき
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  range = ss.getRange('シート1!C1');

image.png

  • 行番号や列番号は変数にすることもできます。
  var row = 1;
  var range = sheet.getRange('C' + row); // sheet.getRange('C1')と同じ

  var col = 'A';
  range = sheet.getRange(col + row); // sheet.getRange('A1')と同じ

  • 範囲指定するとき
  var range = sheet.getRange('A1:D4');

image.png

  • A3から、A列最終行まで
var range = sheet.getRange('A3:A');

image.png

getRangeList(a1Notations)

var rangeList  = sheet.getRangeList(['A1:B4', 'C5:D8']);

まだ使ったことなかったので、へー!って感じでした。
image.png

さいごに

こんどgetValuesいろいろも書きたいと思います。 :cat:

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
99
Help us understand the problem. What are the problem?