よこのじ(@yokonoji_work)です。
Google Apps Script(GAS)で「スプレッドシートの最後の行(最終行)を取得する方法」をご紹介します。
セルを指定する方法「【初心者向けのGAS】スプレッドシートの範囲指定したセルから値を取得する方法」と合わせてご活用ください。
最後の行(最終行)を取得する方法
スプレッドシートの最後の行(最終行)を取得するためには、対象のシートを指定しておく必要があります。
// スプレッドシートを取得する var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); // シートを取得する var sheet = spreadsheet.getSheetByName("シート1");
シート全体の最後の行(最終行)を取得する方法
シート全体の最後の行(最終行)を取得するには、getLastRowメソッドを使用します。
var lastRow = sheet.getLastRow();
シート全体の最後の行(最終行)を取得するため、最も行数が多いB列が対象となります。よって、次の例では lastRow に 4 という結果が格納されます。
ちなみに、途中の行が空だったらどうなるか?ですが、空白があっても値がある最終行を検知してくれました。下図のような場合、最終行は 7 と返してくれます。
特定の列の最後の行(最終行)を取得する方法
各列の最終行を取得したい場合もあるかと思います。
そんな場合は、lastRow関数のような方法で指定した列の最終行を取得できます。
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var sheet = spreadsheet.getSheetByName("シート1"); function myFunction() { // シート全体の最終行を取得 var lastRowAll = sheet.getLastRow(); // 取得したい列を指定 A列=>1, B列=>2,・・・ var column = 3; // 指定した列の最終行を取得 var last_row = lastRow(lastRowAll, column); Logger.log(last_row); } function lastRow(lastRowAll, column) { var range = sheet.getRange(1, column, lastRowAll, column).getValues(); for(var i=lastRowAll-1; i>=0; i--){ if(range[i][0] != ""){ return i + 1; } } }
lastRow関数には「シート全体の最終行」と「最終行を取得したい列」を引数として渡しています。
これらの情報を元にして、下図のように空ではないセルを探します。そして、値があればその行が最終行となります。
var column = 3; (C列)を指定すると最終行は 9 となりますし、B列なら10、A列なら3といった値を取得できます。
最終列を取得したい場合は「【初心者向けのGAS】スプレッドシートの最後の列(最終列)を取得する方法」を参照ください。
Google Apps Script(GAS)は、やりたいことを検索すると共有情報を見つけられるのが良い。
[itemlink post_id=”2666″]