見出し画像

GAS 指定した範囲の、データが含まれている最終行を取得する方法(無料サンプル付き)

今回は、指定した範囲のデータが含まれている最終行を取得する方法について初心者でもできるように解説していきます^^
無料サンプルも作成しましたので下記をダウンロードしてから挑戦してみてください。

今回実現したいことはこちらです。連番という文字を取得して赤枠の空白部分に"連番"の文字を入力したいとします。該当列の値を配列で取得し、その数を取得することで最終行数を取得できます。

20210724_GAS_指定した範囲の、データが含まれている最終行を取得する方法_-_Google_スプレッドシート

GAS 最終行の取得 

GASでデータが入っている部分の最終行を取得するためには、特定のカラムについて全てのデータを配列として取得して、空白の要素を取り除いた配列の長さを取得する方法があります。

function getLastRowWithValue() {
 const sheet = SpreadsheetApp.getActiveSheet(); 
 const columnBVals = sheet.getRange('B:B').getValues(); // B列「教科」の値を配列で取得
 const LastRow = columnBVals.filter(String).length;  //空白を除き、配列の数を取得
 Logger.log(LastRow); //4.0
 //連番の文字列を取得
 const an = sheet.getRange(1,1).getValue();
}

最終行の1つ下の行を取得する方法

これでB列の要素数を取得できました。今回は最終行の+1行下に新たな内容を記入できるようにしたいので上記のコードに下記のコードを加えます。

const Last = LastRow + 1;  //最終行の1行下を選ぶ
//下記のコードの2パターンどちらでもOK
sheet.getRange(`B${Last}`).setValue(an);
sheet.getRange(Last,2).setValue(an);

実際にここまで完成したら実行ボタンを押してみましょう。
下記のように連番がセルB6に入力されれば今回の目標は達成になります^^

20210724_GAS_指定した範囲の、データが含まれている最終行を取得する方法_-_Google_スプレッドシート

まとめ

GASで指定した範囲のデータが含まれている最終行を取得するためには、配列を取得し.filter(String).length;を使用して最終行を取得しましょう。
GAS を覚える近道はとにかく反復練習をすることです。何度も身につくまで練習しましょう^^

この記事が気に入ったらサポートをしてみませんか?