GASのgetRangeとは?引数の使い方とスプレッドシート範囲指定を初心者向けに解説

GASでスプレッドシートのセルを操作したいんだけど、「getRange」の使い方が覚えられなくて…。
猫男
猫男
catman
catman
よし、catmanが「GASのgetRange」を解説しよう。スプレッドシートの操作が楽になるからな。

GASのgetRangeでスプレッドシートを操作する方法

GASのgetRangeメソッドは、スプレッドシートの指定範囲を操作するための基本中の基本。

これを使って、セルやセル範囲を指定するんだ。まずは基本を確認しよう。

getRangeの基本構文

 var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
 var range = sheet.getRange("A1:B2");

✅ これで、シートのA1からB2のセル範囲を取得している。

gas getrange 引数 範囲

getRangeの引数を理解する

引数としてこのように指定することもできる。

 var range = sheet.getRange(1, 1, 6, 2);

✅ 行・列・行数・列数の順に指定する。上の例では、1行目1列目から2行2列の範囲を指定している。

gas getrange 引数 範囲

なるほど!引数を変えると範囲の指定方法が変わるんですね。
猫男
猫男
catman
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
catman
これでgetRangeをマスターできたな。すべての冒険はここからはじまる

練習問題

次のスクリプトを書いてみましょう。

  1. シートの2行目1列目から4行目2列目にまで、ランダムな整数値を配置するスクリプトを作成しましょう。
  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
catman
良いんだ。何かあったらまた聞くといいさ。

EARTHPG 自動化研究所

「その作業、仕組みにできます。」

Google Apps Script、Python、スプレッドシート自動化、WordPress開発、 API連携、AI活用まで対応。 小さな自動化から業務全体の設計まで、研究所が支援します。