セル範囲を操作する

【GAS】スプレッドシートで基準セルから指定の行・列数分移動して任意の行数を取得する

GASでスプレッドシートで基準セルから指定の行・列数分移動して任意の行数を取得するには「offset(rowOffset, columnOffset, numRows)」を利用する。

offset(rowOffset, columnOffset, numRows)

現在の範囲を基準として新しい範囲を返します。その範囲の左上ポイントは、現在の行から特定の行と列だけオフセットされ、セルの高さが指定された値になります。

https://developers.google.com/apps-script/reference/spreadsheet/range#offsetrowoffset,-columnoffset,-numrows

スプレッドシートで基準セルから指定の行・列数分移動して任意の行数を取得するGAS実行の様子

offset(rowOffset, columnOffset, numRows)メソッドを利用して、スプレッドシートで基準セルから指定の行・列数分移動して任意の行数を取得するGASを実行してみました。

offset(rowOffset, columnOffset, numRows)を実行したことで、指定範囲のセルの値をC10を基準セルとして移動できたことが分かります。

  • numRows

を指定することで、移動後のセルを基準に下へ指定した行数分のセルを取得できるのが「offset(rowOffset, columnOffset, numRows)」の特徴でしょう。

スプレッドシートで任意セルから指定した行数・列数分移動する場合は、以下記事を御覧ください。

参照記事:【【GAS】スプレッドシートで任意セルから指定した行数・列数分移動する

スプレッドシートで基準セルから指定の行・列数分移動して任意の行数を取得するGAS

function offset01(){
  //SpreadsheetAppを起動
  let ss = SpreadsheetApp.getActiveSpreadsheet();
  //0番目のシートを取得
  let sht = ss.getSheets()[0];
  //シート全体をクリア
  sht.clear();

 //基準セルを設定
  const start = sht.getRange("C10");
  //■offsetで基準セルから1行下に1列右にそこから10行分のセルを取得)
  const cell = start.offset(1,1,10);
  //取得セルをA1形式でゲットしてrngへ格納
  const rng = cell.getA1Notation();
 //rngセルの背景を黄色にしてあくてぃぶに
  sht.getRange(rng)
  .setBackground("yellow")
  .activate();
 //アクティブセルを掲載
  Browser.msgBox("現在のアクティブセルは「"+rng+"」です");
}

offset(rowOffset, columnOffset, numRows)のパラメーター

名前説明
rowOffsetInteger範囲の左上セルから下方向にある行数。負の値は、範囲の左上セルから上方にある行を表します。
columnOffsetInteger範囲内のセルの左から右の列の数。負の値は、範囲内のセルの左にある列を表します。
numRowsInteger 新しい範囲の行の高さ。
offset(rowOffset, columnOffset, numRows)のパラメーター

offset(rowOffset, columnOffset, numRows)の戻り値

Range - チェーン用の範囲。

スプレッドシートで基準セルから指定の行・列数分移動して任意の行数を取得するまとめ

GAS×スプレッドシートで基準セルから指定の行・列数分移動して任意の行数を取得するならoffset(rowOffset, columnOffset, numRows)メソッドを利用しましょう。

関連記事:【GAS】スプレッドシートの範囲をセル結合する

関連記事:【GAS】スプレッドシートにチェックボックスを挿入する

関連記事:【GAS】スプレッドシートに検証がオン状態のチェックボックスを挿入する

関連記事:【GAS】スプレッドシートにオン / オフ値があるチェックボックスを挿入する

関連記事:【GAS】スプレッドシートのチェックボックスがチェック済みか確認する

-セル範囲を操作する