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, 2, 2);
✅ 行・列・行数・列数の順に指定する。上の例では、1行目1列目から2行2列の範囲を指定している。
なるほど!引数を変えると範囲の指定方法が変わるんですね。

猫男
列全体を指定してみよう
列全体を取得したいときはこのようにする。
var range = sheet.getRange("A:A");
✅ これはA列全体を指しているんだ。
変数で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
良いんだ。何かあったらまた聞くといいさ。