2014年5月5日月曜日

Google Apps Script の Range クラスの getLastRow() メソッドは何をしてくれるのか?

使えないSEです。

タイトルどおり、
Google Apps Script の Range クラスの getLastRow() メソッドは何をしてくれるのか?
ということで、プログラムセンスのない俺がサンプルを作って、知識を深めました。

APIリストには次のように記載がありました。

MethodReturn typeBrief description
getLastRow()IntegerReturns the end row position.

読んで字のごとく最終行を返してくれるわけですが…

A
1
2
3
4

スクリプトエディタに以下のように書いて、いざ実行です。
─────────────────────
function myFunction() {
   var ss = SpreadsheetApp.getActiveSpreadsheet();
   var Lastrow_num = ss.getLastRow();
   Logger.log(Lastrow_num);
}
─────────────────────

これなら4が返ってきます。
当たり前ですね。

では、アクティブセルがA1にあった場合に、先程と同じスクリプトを実行してみましょう。
AB
1
2
3
4
5
6

なんの数値が返ってくるでしょうか?
答えは、5 です。

Rengeを決めず、getLastRow()を実行すると、アクティブセルの場所に構わず、
最後まで入力がある行数を返してくれます。