初心者でもできる!GASでスプレッドシートの最終行の値を取得する方法

パソコンパソコン・スマホ教室
スポンサーリンク

こんにちは!今日は、Google Apps Script(GAS)を使って、スプレッドシートの最終行の値を取得する方法を、初心者の方にもわかりやすくご紹介します。パソコンやスマホの操作に不安がある方でも安心して進められるように、ゆっくり丁寧に解説していきますね。

スポンサーリンク

最初に知っておきたい!最終行とは?

Googleスプレッドシートのイメージ

Googleスプレッドシートのイメージ

まず、「最終行」とは、スプレッドシートの中でデータが入力されている最後の行のことを指します。例えば、A列からD列までデータが入力されていて、最後の行が6行目だとすると、その6行目が最終行となります。

最終行の値を取得する基本の方法

Google Apps Script(GAS)では、`getLastRow()`というメソッドを使うことで、シート内でデータが入力されている最終行の行番号を取得することができます。

以下のコードをGASエディタに入力して実行してみましょう。


function getLastRow() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const lastRow = sheet.getLastRow();
Logger.log("最終行は: " + lastRow);
}

このコードを実行すると、スプレッドシートの「最終行は: 6」といった形で、最終行の番号がログに表示されます。

注意!最終行が正しく取得できない場合とは?

`getLastRow()`メソッドは便利ですが、以下のような場合には正しく最終行を取得できないことがあります。

ここがポイント!

  • 空白セルや数式がある場合セルに値が入力されていない場合でも、数式が入っているとその行が最終行として認識されることがあります。
  • データが途中で途切れている場合途中の行に空白があると、最終行が途中で途切れた行として認識されることがあります。

このような場合には、以下のような方法で最終行を取得することができます。


function getLastRowWithData() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const data = sheet.getDataRange().getValues();
let lastRow = data.length;
while (lastRow > 0 && data.join("") === "") {
lastRow--;
}
Logger.log("データが入力されている最終行は: " + lastRow);
}

このコードでは、シートのデータ範囲を取得し、最後の行から順に空白でない行を探していきます。空白でない行が見つかると、その行番号を最終行として取得します。

実践!最終行の値を取得して処理する方法

実際に、最終行の値を取得して何か処理をしたい場合の例を見てみましょう。例えば、最終行のA列の値を取得して、コンソールに表示するコードは以下のようになります。


function logLastRowValue() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const lastRow = sheet.getLastRow();
const value = sheet.getRange(lastRow, 1).getValue();
Logger.log("最終行のA列の値は: " + value);
}

このコードを実行すると、最終行のA列の値がログに表示されます。例えば、「最終行のA列の値は: 田中太郎」といった形で表示されます。

よくある質問や疑問

Q1: `getLastRow()`メソッドはどのように動作しますか?

`getLastRow()`メソッドは、シート内でデータが入力されている最終行の行番号を返します。ただし、空白セルや数式があると、それらも最終行として認識してしまうことがあります。

Q2: 複数のシートがある場合、最終行はどう取得すればよいですか?

複数のシートがある場合は、各シートごとに`getLastRow()`メソッドを使って最終行を取得する必要があります。


function getLastRowInAllSheets() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheets = ss.getSheets();
sheets.forEach(sheet => {
const lastRow = sheet.getLastRow();
Logger.log(sheet.getName() + "の最終行は: " + lastRow);
});
}

このコードでは、すべてのシートを取得し、各シートの最終行をログに表示します。

Q3: データが空白の行を除外して最終行を取得する方法はありますか?

`getLastRow()`メソッドは、空白の行も含めて最終行を取得します。空白の行を除外して最終行を取得するには、`getDataRange()`メソッドを使ってデータ範囲を取得し、その行数を取得する方法があります。


function getDataRangeLastRow() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const dataRange = sheet.getDataRange();
const lastRow = dataRange.getLastRow();
Logger.log("データ範囲の最終行は: " + lastRow);
}

このコードでは、データ範囲を取得し、その最終行をログに表示します。

今すぐ解決したい!どうしたらいい?

LINE公式

いま、あなたを悩ませているITの問題を解決します!
「エラーメッセージ、フリーズ、接続不良…もうイライラしない!」

あなたはこんな経験はありませんか?

✅ ExcelやWordの使い方がわからない💦
✅ 仕事の締め切り直前にパソコンがフリーズ💦
✅ 家族との大切な写真が突然見られなくなった💦
✅ オンライン会議に参加できずに焦った💦
✅ スマホの重くて重要な連絡ができなかった💦

平均的な人は、こうしたパソコンやスマホ関連の問題で年間73時間(約9日分の働く時間!)を無駄にしています。あなたの大切な時間が今この悩んでいる瞬間も失われています。

LINEでメッセージを送れば即時解決!

すでに多くの方が私の公式LINEからお悩みを解決しています。

最新のAIを使った自動応答機能を活用していますので、24時間いつでも即返信いたします。

誰でも無料で使えますので、安心して使えます。

問題は先のばしにするほど深刻化します。

小さなエラーがデータ消失重大なシステム障害につながることも。解決できずに大切な機会を逃すリスクは、あなたが思う以上に高いのです。

あなたが今困っていて、すぐにでも解決したいのであれば下のボタンをクリックして、LINEからあなたのお困りごとを送って下さい。

相談しに行く

ぜひ、あなたの悩みを私に解決させてください。

まとめ

Google Apps Script(GAS)を使うと、スプレッドシートの最終行の値を簡単に取得することができます。最初は難しく感じるかもしれませんが、少しずつ覚えていきましょう。

他にも疑問やお悩み事があれば、お気軽にLINEからお声掛けください。

コメント

タイトルとURLをコピーしました