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