GASでスプレッドシートで基準セルから指定の行・列数分移動して任意の行・列範囲を取得するには「offset(rowOffset, columnOffset, numRows, numColumns)
」を利用する。
offset(rowOffset, columnOffset, numRows, numColumns)
現在の範囲を基準として新しい範囲を返します。その範囲の左上ポイントは、現在の行から特定の行と列だけオフセットされ、セルに指定された高さと幅が含まれます。
https://developers.google.com/apps-script/reference/spreadsheet/range#offsetrowoffset,-columnoffset,-numrows,-numcolumns
スプレッドシートで基準セルから指定の行・列数分移動して任意の行・列範囲を取得するGAS実行の様子
offset(rowOffset, columnOffset, numRows, numColumns)メソッドを利用して、スプレッドシートで基準セルから指定の行・列数分移動して任意の行・列範囲を取得するGASを実行してみました。
offset(rowOffset, columnOffset, numRows, numColumns)を実行したことで、基準セルを元に移動したことが分かります。
- numRows
- numColumns
を指定することで、移動後のセルを基準に、下へ指定した行数分・横に指定した列のセル範囲を取得できるのが「offset(rowOffset, columnOffset, numRows, numColumns)」の特徴でしょう。
スプレッドシートで任意セルから指定した行数・列数分移動する場合は、以下記事を御覧ください。
参照記事:【GAS】スプレッドシートで任意セルから指定した行数・列数分移動する
スプレッドシートで基準セルから指定の行・列数分移動して任意の行・列範囲を取得するGAS
function offset03(){
//SpreadsheetAppを起動
let ss = SpreadsheetApp.getActiveSpreadsheet();
//0番目のシートを取得
let sht = ss.getSheets()[0];
//シート全体をクリア
sht.clear();
//基準セルを設定
const start = Browser.inputBox("基準セルを入力してください(A1形式)");
//■offsetで基準セルから1行下に1列右にそこから10行分・5列分のセルを取得)
const cell = start.offset(1,1,10,5);
//取得セルをA1形式でゲットしてrngへ格納
const rng = cell.getA1Notation();
//rngセルの背景を黄色にしてアクティブに
sht.getRange(rng)
.setBackground("yellow")
.activate();
//アクティブセルを掲載
Browser.msgBox("現在のアクティブセルは「"+rng+"」です");
}
offset(rowOffset, columnOffset, numRows, numColumns)のパラメーター
名前 | 型 | 説明 |
---|---|---|
rowOffset | Integer | 範囲の左上セルから下方向にある行数。負の値は、範囲の左上セルから上方にある行を表します。 |
columnOffset | Integer | 範囲内のセルの左から右の列の数。負の値は、範囲内のセルの左にある列を表します。 |
numRows | Integer | 新しい範囲の行の高さ。 |
numColumns | Integer | 新しい範囲の列の幅。 |
offset(rowOffset, columnOffset, numRows, numColumns)の戻り値
Range - チェーン用の範囲。
スプレッドシートで基準セルから指定の行・列数分移動して任意の行・列範囲を取得するまとめ
GAS×スプレッドシートで基準セルから指定の行・列数分移動して任意の行・列範囲を取得するならoffset(rowOffset, columnOffset, numRows, numColumns)
メソッドを利用しましょう。
関連記事:【GAS】スプレッドシートにチェックボックスを挿入する
関連記事:【GAS】スプレッドシートに検証がオン状態のチェックボックスを挿入する