【GAS】スプレッドシートのセルを指定して値を取得・入力する方法

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)」となります.

まとめ

今回は,スプレッドシートのセルを指定して値を取得・入力する方法を解説しました.

ぜひ業務の自動化などに活用してみてください.