【GAS】スプレッドシート最終行(列)を取得するスクリプト関連まとめ

エンジニア

Google app script(gas)のgetLastRow();とgetLastColumn();は、使い勝手がイマイチです。指定した列(範囲)の最終行を取得することが難しいからです。

指定した範囲の最終行の取得がしたかったので、もろもろ備忘録でまとめてみました。

ソースコード紹介

先に結論となるコードを貼ります。

getLastRow、getLastColumn、指定した列の最終行を取得する場合のスクリプト3点を下記にそれぞれまとめてみました。

getLast系はちょっと使いにくい・・・

getLast系のメソッドは、シート全体からの最終行および最終列しか取得できないところが融通悪し、です。getRangeなどで範囲を指定してから探索させようとすると、getRangeの範囲の最終行を返してきます。

欲しい値は、getRangeの中で、データの存在する最終部分なのですが、どうやら仕様上、ダメなようです。(試しにやってみたら、なんかgetRangeで指定した範囲の最終行をそのまま返してくるようになってしまい、データの存在する最終行が分からず、です。)

VBAのxlUpやxlDownみたいなのがあれば良いんですが、残念・・・。ループさせたりして頑張ると、なんか取得できるらしいんですが、次項で紹介する方法のほうがスマートだったので、断念してしまいました。

(getLast系メソッドの特徴を考慮すると、これらを使う場合は、そのシートをパラメータ専用にしておいて、A1部から値を入力させる設計にしておくと便利かと思います。)

指定した範囲の最終行列数が欲しい時はコレ

先ほどのソースコードのmemo03部分。filterとlengthを使った方法だと、指定した列(指定した範囲)の中における、データの存在する最終行列の数を取得してくれるので、大助かりです。

この方法は、下記の記事様に紹介してあり、本当に助かりました。
Google Apps Script - スプレッドシートで各列の最終行を求めるScript

きちんとVBAライクにカウントしてくれるので、とても素晴らしい方法でした。

まとめ

Google app scriptでは、パラメータ専用のシートであれば、getLast系メソッド。指定した範囲の最終値が欲しい時は、filterとlengthが良いかと思います!

最後に一言

無料でこれだけ使えたら文句いえない。

本記事を気に入って頂けたら、facebookの「いいね!」を是非!

【GAS】スプレッドシート最終行(列)を取得するスクリプト関連まとめ


本記事のシェアはこちらから!

  • このエントリーをはてなブックマークに追加
  • Pocket

PROFILE

yoshi

本ブログ・WebMakeBlog KIYOTATSUを運営しているYoshiと申します。普段はWEB制作をやっています。過去、エンジニアの頃は、MATLAB/simulink/VBA/C/C++など扱っていました。生産管理、MECE、オブジェクト指向など、当時に得た知識はweb業界に入っても、かなり役立っています。