Google Apps ScriptでGoogleスプレッドシートを操作するとき,セルの値の取得・入力を行う場面は多いと思います.
そこでこの記事では,スプレッドシートのセルを指定して値を取得・入力する方法を解説します.
スプレッドシートからGASを開く
GASでスプレッドシートを取得する方法はいくつかあります.
- アクティブなスプレッドシートを取得
- IDを元にスプレッドシートを取得
- URLを元にスプレッドシートを取得
この記事では,スプレッドシートからGASを開いた場合を想定し,アクティブなスプレッドシートを取得する方法で行います.
スプレッドシートからGASを開く方法が分からない場合は,こちらを記事を参考にしてください.
値の取得
スプレッドシートからGASを開けたら,セルを指定して値を取得するコードを書きます.
1つのセルの値を取得
セルを指定して値を取得するには,基本的に「スプレッドシート」「シート」「セル範囲」を取得する必要があります.

このようなスプレッドシートの「A2」の値を取得したい場合は,以下のコードを実行します.
function myFunction() {
// アクティブなスプレッドシートを取得
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
// アクティブなシートを取得
const sheet = spreadsheet.getActiveSheet();
// セル範囲を取得
const range = sheet.getRange("A2");
// 値を取得
const value = range.getValue();
//ログに出力
Logger.log(value);
}

複数のセルの値を取得

このようなスプレッドシートの「A1:C5」の値を取得したい場合は以下のコードを実行します.
複数のセルの値を取得する場合は,値を配列として取得するので「getValueメソッド」ではなく「getValuesメソッド」を使用します.
function myFunction() {
// アクティブなスプレッドシートを取得
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
// アクティブなシートを取得
const sheet = spreadsheet.getActiveSheet();
// セル範囲を取得
const range = sheet.getRange("A1:C5");
// 値を取得
const value = range.getValues();
//ログに出力
Logger.log(value);
}

値は,このような配列として取得することができます.
値の入力
1つのセルに値を入力
セルを1つ指定して,値を入力するときは「setValueメソッド」を使用します.
以下のコードを実行すると,「A1」に”OK”と入力できます.
function myFunction() {
// アクティブなスプレッドシートを取得
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
// アクティブなシートを取得
const sheet = spreadsheet.getActiveSheet();
// セル範囲を取得
const range = sheet.getRange("A1");
// 値を入力
range.setValue("OK");
}

複数のセルに値を入力
複数のセルを指定して,値を入力するときは「setValuesメソッド」を使用します.
この場合,値は配列として入力する必要があります.

「A1:E2」にこのような値を入力したいときは,以下のようなコードを実行します.
function myFunction() {
// アクティブなスプレッドシートを取得
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
// アクティブなシートを取得
const sheet = spreadsheet.getActiveSheet();
// セル範囲を取得
const range = sheet.getRange("A1:E2");
// 値を入力
range.setValues([["あ", "い", "う", "え", "お"],["か", "き", "く", "け", "こ"]]);
}
セル範囲の指定
ここまでは,セル範囲を「A2」や「A1:E2」のようなアドレスで指定しました.
別のパターンとして「行番号」「列番号」「行数」「列数」を組み合わせてセル範囲を指定する方法があります.書式は以下の通りです.
getRange(行番号, 列番号[, 行数, 列数])
例えば,「B1」を指定する場合は「getRange(1, 2)」,「B1:E3」を指定する場合は「getRange(1, 2, 3, 4)」となります.

まとめ
今回は,スプレッドシートのセルを指定して値を取得・入力する方法を解説しました.
ぜひ業務の自動化などに活用してみてください.