GASのgetRangeとは?引数の使い方とスプレッドシート範囲指定を初心者向けに解説
GASでスプレッドシートのセルを操作したいんだけど、「getRange」の使い方が覚えられなくて…。
猫男
catman
よし、catmanが「GASのgetRange」を解説しよう。スプレッドシートの操作が楽になるからな。
GASのgetRangeでスプレッドシートを操作する方法
GASのgetRangeメソッドは、スプレッドシートの指定範囲を操作するための基本中の基本。
これを使って、セルやセル範囲を指定するんだ。まずは基本を確認しよう。
getRangeの基本構文
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var range = sheet.getRange("A1:B2");
✅ これで、シートのA1からB2のセル範囲を取得している。

getRangeの引数を理解する
引数としてこのように指定することもできる。
var range = sheet.getRange(1, 1, 6, 2);
✅ 行・列・行数・列数の順に指定する。上の例では、1行目1列目から2行2列の範囲を指定している。

なるほど!引数を変えると範囲の指定方法が変わるんですね。
猫男
catman
そうだ。引数のパターンは結構あるから時と場合によって使い分けよう
| 書き方 | 引数の数 | 意味 | 取得される範囲の例 |
|---|---|---|---|
getRange("A1") |
1つ | A1形式の文字列で1つのセルを指定する | A1 |
getRange("A1:B2") |
1つ | A1形式の文字列で複数セルの範囲を指定する | A1:B2 |
getRange("A:A") |
1つ | A列全体を指定する | A:A |
getRange("A:C") |
1つ | A列からC列まで、複数列全体を指定する | A:C |
getRange("1:1") |
1つ | 1行目全体を指定する | 1:1 |
getRange("1:3") |
1つ | 1行目から3行目まで、複数行全体を指定する | 1:3 |
getRange(1, 1) |
2つ | 開始行と開始列を指定して、1つのセルを取得する | A1 |
getRange(1, 1, 2) |
3つ | 開始行・開始列・行数を指定して、縦方向の範囲を取得する | A1:A2 |
getRange(1, 1, 2, 2) |
4つ | 開始行・開始列・行数・列数を指定して、四角い範囲を取得する | A1:B2 |
変数でgetRangeの範囲を動的に指定
変動する行や列を指定したいときは、変数を活用しよう。
var startRow = 1;
var numRows = 5;
var range = sheet.getRange(startRow, 1, numRows, 2);
✅ 変数を使えば、動的に変わる範囲を指定可能。
GASでgetRangeから値を取得する方法
setValueでセルに値を入力
getRangeで指定したセルに値を入れるには、setValueを使う。
range.setValue("Hello, World!");
✅ 指定したセル範囲に「Hello, World!」という文字を入れた。
配列を使って複数の値を入れる
複数のセルに値をセットしたい場合、配列を使うと便利だ。
var values = [
["名前", "年齢"],
["catman", 100]
];
sheet.getRange(1, 1, 2, 2).setValues(values);
✅ カラムに指定された値の配列がそれぞれセルに入る。
getValuesでセルの値を取得
逆に、セルから値を取り出すときはgetValuesを使う。
var data = range.getValues();
Logger.log(data);
✅ 指定範囲のデータを配列として取得してログに出力。
データの取得と設定、どっちもgetRangeでスムーズにできるんですね!
猫男
最終行をゲットする
最終行を取得する方法もある。
var lastRow = sheet.getLastRow();
Logger.log("最終行は: " + lastRow);
✅ getLastRowを使って最終行の番号を取得。
離れたセルを同時に操作する
離れた範囲を同時に操作したい場合は工夫が必要だ。
var ranges = [sheet.getRange("A1"), sheet.getRange("C1")];
ranges.forEach(function(range) {
range.setValue("Hello");
});
✅ 複数のセル範囲を配列に入れて、それぞれに値をセット。
catman
これでgetRangeをマスターできたな。すべての冒険はここからはじまる
練習問題
次のスクリプトを書いてみましょう。
- シートの2行目1列目から4行目2列目にまで、ランダムな整数値を配置するスクリプトを作成しましょう。
- 作成したスクリプトで埋めた範囲を取得し、データをログに出力しましょう。
解答・解説
function fillRandomValuesAndLog() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var range = sheet.getRange(2, 1, 3, 2);
var values = [];
// ランダムな整数を値にセットする
for (var i = 0; i < 3; i++) {
values[i] = [];
for (var j = 0; j < 2; j++) {
values[i][j] = Math.floor(Math.random() * 100);
}
}
range.setValues(values);
// セルから値を取得してログに出力する
var data = range.getValues();
Logger.log(data);
}
解説:
- まず、シートを取得しgetRangeを使って特定の範囲を設定。
- ランダムな整数を生成して配列にセットし、setValuesを使ってセルに配置。
- その後、getValuesでデータを取得し、Logger.logで表示。
これでgetRangeを使ったセル操作がしっかり理解できました!ありがとうございます、catman!
猫男
catman
良いんだ。何かあったらまた聞くといいさ。