スプレッドシートの列の最終行を取得
Google App Script(GAS)で、スプレッドシートの最終行を取得する構文です。
スプレッドシートのシート内での最終行を取得できます。
構文
Sheetオブジェクト.getLastRow()
引数
なし
戻り値
Integer
サンプルコード
function sample() {
// アクティブなスプレッドシートを取得
const spreadSheet = SpreadsheetApp.getActiveSpreadsheet();
// 指定したシートの取得
const sheet = spreadSheet.getSheetByName("シート1");
// 最終行の取得
const lastRow = sheet.getLastRow();
Logger.log(lastRow);
}
参考
【番外編】指定した列の最終行を取得
スプレッドシートの指定した列の最終行を取得したい場合もあると思います。
サンプルとして、filterを使用して空白以外の数を数えて取得する方法です。
サンプルコード
function getLastRow() {
// アクティブなスプレッドシート
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
// アクティブなシート
const targetSheet = spreadsheet.getActiveSheet();
// A列
const columnsVals = targetSheet.getRange("A:A").getValues();
// 最終行(=空白行以外の数)
const lastRow = columnsVals.filter(String).length;
// ログに出力
Logger.log(lastRow);
}
空白以外の数を数える方法のため、間に空白がある場合はこの方法は使用できないので注意をしてください。
サンプルコード2
上記のfilterを使用した方法は以下のようにメソッド化しておくと使用しやすくなります。
/**
* sample5
* 指定した列の最終行を取得
* ただし、間に空白行がない事。
*/
function sample_getLastLow() {
// アクティブなスプレッドシート
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
// アクティブなシート
const targetSheet = spreadsheet.getActiveSheet();
// 最終行(=空白行以外の数)
const lastRow = getLastRowCustom(targetSheet, "A:A")
// ログに出力
Logger.log(lastRow);
}
/**
* 最終行を返却します。
* @param {Object} シートオブジェクト
* @param {string} A1表記またはR1C1表記で指定された範囲
* @return {number} 最終行
*/
function getLastRowCustom(sheet, notations) {
const columnsVals = sheet.getRange(notations).getValues();
const lastRow = columnsVals.filter(String).length;
return lastRow;
}