Google Apps Script

【GAS】指定行の最終列番号・指定列の最終行番号を取得する

 

※2019/9/4追記:もっと便利な書き方を見つけました!

【GAS】1行で書ける!特定列の最終行・特定行の最終列を取得する方法

 

 

スプレッドシートで最終行・最終列を取得したい!ことってありますよね

 

もり
もり
それなら簡単だよ!メソッドがあるじゃん

 

sheetオブジェクト.getLastRow()
スプレッドシートのデータ範囲の最終行を取得する

sheetオブジェクト.getLastColumn()
→スプレッドシートのデータ範囲の最終を取得する

 

このメソッドを使用して、スプレッドシートを検索してみます。

lastrowcol1

 

コードがこちらです。「最終行=7」と「最終列=5(E列)」が取得できます。

 

モリ
モリ
ちがう!そうじゃないんだ!

B列の最終行は?とか、

3行目の最終列は?が知りたいぞ

 

もり
もり
あ、なるほどね~

 

「特定の列」の最終行の行番号を取得する

関数を作ってみました。

 

B列の最終行=5が取得できました。

lastrowcol2

filterメソッドを使用しています。引数にStringを与えると、データが存在する要素のlengthを取得できます。

Arrayオブジェクト.filter()
→配列の内容を特定の条件で絞り込む

 

「特定の行」の最終列の列番号を取得する

こちらも関数を作ってみました。

 

3行目の最終列=4(D列)が取得できます。

lastrowcol3

空白セルがある場合も取得できる?

このように、途中に「空白セル」がある場合を試してみました。

lastrowcol4

コードがこちらです。関数findLastRowとfindLastColの中身は、上で示したコードと同じです。

最終行と最終列ではありませんね・・・。

 

モリ
モリ
データが存在するセルの個数になってるな

 

逆向きループで取得してみる

データを少し変えてみました。※getLastColumn()で取得する最終列は8です。

lastrowcol5

3行目の最終列番号「6」を取得するコードがこちら。

 

【処理の概要】

getLastColumn()で取得する最終列(8)までの1行を、二次元配列RowValuesに格納する。

配列の中身を逆向きループでチェックし、もし空でなければ、その要素番号が最終列となる。
ただし、要素番号は0から始まるので、スプレッドシートの列番号に合わせるため+1する。

【追記】1行で書ける方法

※2019/9/4追記:こちらも併せてご覧ください!

【GAS】1行で書ける!特定列の最終行・特定行の最終列を取得する方法GASで「A列の最終行は?」「3行目の最終列は?」など、「特定列の最終行」「特定行の最終列」を取得する方法を紹介しています。ポイントはgetNextDataCellメソッドです。...
ノンプログラマーがプログラミングを学ぶ理由

ノンプログラマーがプログラミングを使えるようになると、「仕事の幅」が広がります。

日常生活にたとえると「車の運転」のイメージです。

多くの人は、大人になると自動車教習所に通って、運転の練習をしますね。F1レーサーやタクシードライバーなどの「プロ」になるわけではないのに。

車の運転ができれば、遠いところへ、速く・ラクに移動できて「生活の幅」が広がるからです。

プログラミングができるようになれば、今の仕事を速く・ラクに片づけて、「仕事の幅」を広げることができます。

「プロ」を目指す必要はありません。今の仕事をより豊かにするための「手段」、それがプログラミングです。

1週間のオンライン無料体験
いつでもどこでも今すぐ視聴OK