はじめに
セルの getRange()
の引数の種類がたくさんあって列だっけ?行だっけ?ってよくなるので、各メソッドの使用例と範囲指定のイメージ画像をつけて羅列してみることにしました。
サンプルスプレッドシート
この画像のデータをいろいろ getRange()
して、どのように範囲指定できるか 背景色をピンク にして、確認してみます。
前提
コードに出てくる sheet
はアクティブシートで初期化してある前提です。
var sheet = SpreadsheetApp.getActiveSheet();
getRange(row, column)
var range = sheet.getRange(1, 4);
range.setBackground('pink'); // 背景色をピンクに
列番号(column)について
(ご存知かと思いますが念の為、)引数のcolumnはA列から順番に、1,2,3...となります。rowは1行目、2行目...とそのまんまですね。
※以降から背景色ピンクにするコードは省略します。
getRange(row, column, numRows)
var range = sheet.getRange(2, 4, 3);
私はどう範囲指定されるのかイメージしづらかったので、何番目のセルか番号振りました。
- 範囲指定の開始位置が、2行、4列目のセル
- 開始位置のセルから3行を範囲指定
getRange(row, column, numRows, numColumns)
var range = sheet.getRange(3, 2, 4, 3);
よく忘れるのでこれも番号振ってみました。
getRange(a1Notation)
// アクティブシートのとき
var range = sheet.getRange('C1');
// シート名を指定するとき
var ss = SpreadsheetApp.getActiveSpreadsheet();
range = ss.getRange('シート1!C1');
- 行番号や列番号は変数にすることもできます。
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');
- A3から、A列最終行まで
var range = sheet.getRange('A3:A');
getRangeList(a1Notations)
var rangeList = sheet.getRangeList(['A1:B4', 'C5:D8']);
さいごに
こんどgetValuesいろいろも書きたいと思います。