はじめに
Google Apps Script(GAS)の getRangeメソッドは、Googleスプレッドシートのセルや範囲を操作するための重要な機能です。本記事では、特に初心者が混乱しがちな getRange の 4つの引数指定方法 を、具体例を交えながら徹底解説します。
GASのセットアップや基本的な開発環境の整え方については、別記事
「エンジニアでなくてもOK!ビジネスパーソン向けGoogle Apps Script(GAS)の使い方」
で詳しく解説しています。初めてGASを使う方は、まずそちらをご参照いただければ、スムーズに開発を始めることができると思います。
getRange の基本構文
getRange の引数は、操作したいセルや範囲を指定するために使用します。その引数には以下の4種類の指定方法があります:
getRange(行, 列)
getRange(行, 列, 行数)
getRange(行, 列, 行数, 列数)
getRange("セル範囲")
1. getRange(行, 列)
特定の 1つのセル を指定する際に使います。
- 引数1: 行番号(1から始まる)
- 引数2: 列番号(1から始まる)
例: セルA1に値を設定
function setSingleCellValue() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const range = sheet.getRange(1, 1); // 行:1, 列:1 → セルA1 range.setValue("こんにちは"); // A1セルに値を設定 }
2. getRange(行, 列, 行数)
特定の 1列で複数行の範囲 を指定する際に使います。
- 引数1: 開始行番号
- 引数2: 開始列番号
- 引数3: 範囲に含める行数
例: 列Aの1行目から5行目までに値を設定
function setColumnValues() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const range = sheet.getRange(1, 1, 5); // 行:1, 列:1, 行数:5 → A1:A5 range.setValues([ ["A1"], ["A2"], ["A3"], ["A4"], ["A5"] ]); }
getRange(1, 1, 5)
の場合、列Aの 1行目から5行目 の範囲(A1:A5
)を取得します。- 値を複数設定する際は
.setValues()
を使用します。
注意点
- この形式では列数が「1列」で固定されます。
- 横方向(複数列)を指定したい場合は、次の 4引数形式 を使用します。
3. getRange(行, 列, 行数, 列数)
複数のセルを範囲で指定する方法です。
- 引数1: 開始行番号
- 引数2: 開始列番号
- 引数3: 範囲に含める行数
- 引数4: 範囲に含める列数
例: 範囲A1:B3に値を設定
function setRangeValues() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const range = sheet.getRange(1, 1, 3, 2); // 行:1, 列:1, 行数:3, 列数:2 → A1:B3 range.setValues([ ["A1", "B1"], ["A2", "B2"], ["A3", "B3"] ]); }
- この形式を使うと、指定した行数・列数の範囲を一度に操作できます。
.setValues()
で複数の値を設定する際は、行ごとに配列として値を渡します。
4. getRange(“セル範囲”)
セル範囲を A1記法 で指定する方法です。
- 引数は文字列で指定します(例:
"A1:B3"
)。
- この方法はコードが読みやすく、直感的に範囲を指定できます。
- ただし範囲が動的に変化する場合は他の指定方法を使ったほうが良いです。
例: 範囲A1:B3の背景色を変更
function setBackgroundColor() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const range = sheet.getRange("A1:B3"); // 範囲をA1記法で指定 range.setBackground("yellow"); // 背景色を黄色に設定 }
使い分けのポイント
指定方法 | 特徴 | 使用例 |
---|---|---|
getRange(行, 列) |
単一セルを指定する簡単な方法 | セルA1に値を設定する |
getRange(行, 列, 行数) |
1列で複数行の範囲を指定 | 列Aの1〜5行目に値を設定する |
getRange(行, 列, 行数, 列数) |
行・列を含む複数セルの範囲を指定 | 範囲A1:B3にデータを設定する |
getRange("セル範囲") |
A1記法で直感的に範囲を指定 | 範囲A1:B3の背景色を変更する |
注意事項
- 行番号・列番号は1から始まる
GASでは行番号や列番号の指定は 1から始まる ので、0始まりに慣れているプログラマーは注意してください。 - 範囲が存在しない場合エラーが発生
範囲がスプレッドシート内に存在しない場合、エラーが発生します。
まとめ
Google Apps Script の getRange
メソッドを使えば、スプレッドシートのセルや範囲を柔軟に操作できます。今回紹介した4種類の指定方法をうまく使い分けて、より効率的なスクリプトを作成しましょう!
ポイント
- 単一セルには
(行, 列)
。 - 1列の複数行には
(行, 列, 行数)
。 - 複数行・列には
(行, 列, 行数, 列数)
。 - 静的な範囲には
"セル範囲"
を活用。