GAS スプレッドシートの指定したセルをオフセット値とする

GAS スプレッドシートの指定したセルをオフセット値とする

GAS(Google Apps Script)で、スプレッドシートの指定したセルをオフセット値とする手順を記述してます。「offset」に対象の行列を指定することで可能です。数も指定することが可能です。

環境

  • OS windows11 home
  • ブラウザ chrome 109.0.5414.120

指定したセルをオフセット値とする

定したセルをオフセット値とするには、「offset」を使用します。

Range.offset( オフセット行, オフセット列, [行数], [列数] )

以下のシートから、「B3」をオフセットとしてセルの値を取得してみます。

コードを実行します。

function myFunction() {

  // GASを作成したスプレッドシート
  let spreadsheet = SpreadsheetApp.getActiveSpreadsheet();

  // スプレッドシートの最初のワークシートを取得
  let sheet = spreadsheet.getSheets()[0];

  // 範囲を指定
  let range = sheet.getRange("B3");

  // B3をオフセットとして位置を指定して値を取得
  Logger.log( range.offset(1,0).getValue() )
  Logger.log( range.offset(-1,0).getValue() )
  Logger.log( range.offset(0,1).getValue() )
  Logger.log( range.offset(0,-1).getValue() )

}

オフセットとなっている「B3」からの位置で値が取得されていることが確認できます。

指定した位置が、存在しない場合はエラーとなります。

function myFunction() {

  // GASを作成したスプレッドシート
  let spreadsheet = SpreadsheetApp.getActiveSpreadsheet();

  // スプレッドシートの最初のワークシートを取得
  let sheet = spreadsheet.getSheets()[0];

  // 範囲を指定
  let range = sheet.getRange("B3");

  // B3をオフセットとして位置を指定して値を取得  
  Logger.log( range.offset(-3,0).getValue() )
  // エラー	Exception: The starting row of the range is too small.

}

実行結果

行列数を指定

行列数を指定することも可能です。

function myFunction() {

  // GASを作成したスプレッドシート
  let spreadsheet = SpreadsheetApp.getActiveSpreadsheet();

  // スプレッドシートの最初のワークシートを取得
  let sheet = spreadsheet.getSheets()[0];

  // 範囲を指定
  let range = sheet.getRange("B3");

  // B3をオフセットとして位置を指定して値を取得
  Logger.log( range.offset( 0, -1 , 2, 2 ).getValues() )

}

実行結果