セル範囲を操作する

【GAS】スプレッドシートでセルから指定の行・列数分移動する

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

offset(rowOffset, columnOffset)

この範囲から指定された行数と列数(負の値)をオフセットした新しい範囲を返します。新しい範囲は元の範囲と同じサイズになります。

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

スプレッドシートでセルから指定の行・列数分移動するGAS実行の様子

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

offset(rowOffset, columnOffset)を実行したことで、指定範囲のセルの値をE1を先頭としてコピー・ペーストできたことが分かります。

ススプレッドシートで現在アクティブなシートを返す場合は、以下記事を御覧ください。

参照記事:【GAS】スプレッドシートで現在アクティブなシートを返す

スプレッドシートでセルから指定の行・列数分移動するGAS

function hoge(){
  //SpreadsheetAppを起動
  let ss = SpreadsheetApp.getActiveSpreadsheet();
  //0番目のシートを取得
  let sht = ss.getSheets()[0];
 //シート全体をクリア
  sht.clear();
 //50行目までコンテンツを作成
  for(var i=1;i<=50;i++){
    const text = [
      [i,"Spread","Sheet","Blue"]
    ];
    //コンテンツを記入
    sht.getRange(i,1,1,4).setValues(text);
  }
  //offsetの関数を呼び出し
  offset();
}
/*offset関数*/
function offset(){
  //SpreadsheetAppを起動
  let ss = SpreadsheetApp.getActiveSpreadsheet();
  //0番目のシートを取得
  let sht = ss.getSheets()[0];
  //始点セルを入力してstartへ格納
  const start = Browser.inputBox("始点セルを入力(A1形式)");
  //始点セルの範囲をcellへ格納
  const cell = sht.getRange(start);
  //■offsetで1行・3列分移動したセルについて、A1形式で値を取得
  const rng = cell.offset(1,3).getA1Notation();
 //アクティブセルの背景を黄色に・アクティブに
  sht
  .getRange(rng)
  .setBackground("yellow")
  .activate();
 //移動した旨を掲載
  Browser.msgBox("「"+start+"」を始点セルとして、offsetで「"+rng+"」へアクティブセルを移動しました");
}

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

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

offset(rowOffset, columnOffset)の戻り値

Range - チェーン用の範囲。

スプレッドシートでセルから指定の行・列数分移動するまとめ

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

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

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

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

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

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

-セル範囲を操作する