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)のパラメーター
名前 | 型 | 説明 |
---|---|---|
rowOffset | Integer | 範囲の左上セルから下方向にある行数。負の値は、範囲の左上セルから上方にある行を表します。 |
columnOffset | Integer | 範囲内のセルの左から右の列の数。負の値は、範囲内のセルの左にある列を表します。 |
numRows | Integer | 新しい範囲の行の高さ。 |
offset(rowOffset, columnOffset, numRows)の戻り値
Range - チェーン用の範囲。
スプレッドシートで基準セルから指定の行・列数分移動して任意の行数を取得するまとめ
GAS×スプレッドシートで基準セルから指定の行・列数分移動して任意の行数を取得するならoffset(rowOffset, columnOffset, numRows)
メソッドを利用しましょう。
関連記事:【GAS】スプレッドシートにチェックボックスを挿入する
関連記事:【GAS】スプレッドシートに検証がオン状態のチェックボックスを挿入する