GASでスプレッドシートで特定列の最終行・特定行の最終列を選択するには「getNextDataCell(direction)
」を利用する。
getNextDataCell(direction)
範囲の最初の列と行にあるセルから、指定した方向の次のセルを返します。これは、データが連続するセル範囲の端か、セルがその方向のスプレッドシートの端にあります。これは、エディタで「 Ctrl+[arrow key]」を入力するのと同じです。
https://developers.google.com/apps-script/reference/spreadsheet/range#getnextdatacelldirection
スプレッドシートで特定列の最終行・特定行の最終列を選択するGAS実行の様子
getNextDataCell(direction)メソッドを利用して、スプレッドシートで特定列の最終行・特定行の最終列を選択するGASを実行してみました。
getNextDataCell(direction)を実行することで、
- 任意セルの最終行
- 任意セルの最終列
といった特定行列の最終セルを取得することができます。
スプレッドシートで指定した行・列・最終行・最終列までのセル範囲を取得するは、以下記事を御覧ください。
参照記事:【GAS】スプレッドシートで指定した行・列・最終行・最終列までのセル範囲を取得する
スプレッドシートで特定列の最終行・特定行の最終列を選択するGAS
function getnextdatacell(){
//SpreadsheetAppを起動
let ss = SpreadsheetApp.getActiveSpreadsheet();
//0番目のシートを選択
let sht = ss.getSheets()[0];
//テキストを準備
let text1 = "Spread";
let text2 = "Sheet";
let text3 = "Blue";
//繰返し文でテキストを設置
for(var i=1;i<=5;i++){
sht.getRange(i,1,1,1).setValue(text1);
sht.getRange(i,2,1,1).setValue(text2);
sht.getRange(i,3,1,1).setValue(text3);
//横に繰返し
for(var r=1;r<=5;r++){
sht.getRange(1,r,1,1).setValue(text1);
sht.getRange(2,r,1,1).setValue(text2);
sht.getRange(3,r,1,1).setValue(text3);
}
}
//段差をつけるために最終行箇所を少し削除(■getNextDataCell()で最終行を取得)
var rng1 = sht.getRange(1,2).getNextDataCell(SpreadsheetApp.Direction.DOWN).getA1Notation();
var rng2 = sht.getCurrentCell().offset(0,1).getA1Notation();
sht.getRange(rng1+":"+rng2).clearContent();
//YESNOで作業有無を確認
const yesno = Browser.msgBox("任意の範囲の最終行と最終列を取得しますか?",Browser.Buttons.YES_NO);
//YESなら
if(yesno == "yes"){
//始点セルを入力してもらう
let cell01 = Browser.inputBox("最終行と最終列を取得するための始点セルをA1形式で入力");
//■getNextDataCell(SpreadsheetApp.Direction.DOWN)で最終行を取得
let rw01 = sht.getRange(cell01).getNextDataCell(SpreadsheetApp.Direction.DOWN).getA1Notation(); //■getNextDataCell(SpreadsheetApp.Direction.NEXT)で最終列を取得
let cl01 = sht.getRange(cell01).getNextDataCell(SpreadsheetApp.Direction.NEXT).getA1Notation(); //始点セルを起点に最終行・最終列を報告
Browser.msgBox("「"+cell01+"」の最終行セルは「"+rw01+"」で最終列セルは「"+cl01+"」です");
}else{
//作業キャンセルを報告
Broswer.msgBox("最終行・列のセル取得をキャンセルしました");
}
}
getNextDataCell(direction)のパラメーター
名前 | タイプ | 説明 |
---|---|---|
direction | Direction | フリーズする行数。 |
getNextDataCell(direction)の戻り値
Range - データ領域のエッジセルまたはスプレッドシートのエッジにあるセル。
スプレッドシートで特定列の最終行・特定行の最終列を選択するまとめ
GAS×スプレッドシートで特定列の最終行・特定行の最終列を選択するならgetNextDataCell(direction)
メソッドを利用しましょう。
関連記事:【GAS】スプレッドシートで指定した行・列のセル範囲を取得する
関連記事:【GAS】スプレッドシート内で検索を行う