初心者でもわかる!Google Apps Scriptでスプレッドシートの最終行を取得する方法

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

Googleスプレッドシートを使っていると、「データが入力されている最後の行を知りたい」と思うことがありませんか?そんなときに便利なのが、Google Apps Script(GAS)を使った最終行の取得です。今回は、プログラミング初心者の方でもわかりやすく、実際の業務で役立つ方法を紹介します。

スポンサーリンク

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

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

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

まずは、最も基本的な方法からご紹介します。

getLastRow()メソッドを使う

このメソッドは、シート内でデータが入力されている最終行の行番号を取得するものです。例えば、A列からD列までデータが入っている場合、最終行は「6」と表示されます。

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

getMaxRows()メソッドを使う

こちらは、シートの最大行数を取得する方法です。データが入っていなくても、シートの設定で決められた行数が返されます。

javascript
function getMaxRows() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const maxRows = sheet.getMaxRows();
Logger.log("シートの最大行数は: " + maxRows);
}

最終行を取得する際の注意点

空白セルや数式に注意

getLastRow()メソッドは、空白セルや数式があると、それらも最終行として認識してしまうことがあります。例えば、A列に数式が入力されているが、表示される値が空白の場合でも、その行が最終行としてカウントされてしまいます。

特定の列で最終行を取得したい場合

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

このコードでは、A列のデータが入っている最終行を取得しています。特定の列で最終行を知りたい場合に便利です。

実践例: Googleフォームの回答を別のシートに転記する

問い

Googleフォームの回答をスプレッドシートに自動で転記したいが、どの行から書き込めば良いかがわからない。

答え

getLastRow()メソッドを使って、データが入力されている最終行を取得し、その次の行から書き込むようにすれば、既存のデータを上書きすることなく新しいデータを追加できます。

javascript
function appendFormData() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("フォームの回答");
const lastRow = sheet.getLastRow();
sheet.appendRow);
}

検証

このスクリプトを実行すると、「フォームの回答」シートの最終行の次の行に新しいデータが追加されます。

よくある質問や疑問

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

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

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

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

javascript
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()メソッドを使ってデータ範囲を取得し、その行数を取得する方法があります。

javascript
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を使うことで、スプレッドシートの最終行を簡単に取得することができます。これを活用すれば、データの追加や処理を効率的に行うことができます。プログラミング初心者の方でも、少しのコードで業務を自動化できるので、ぜひ試してみてください。

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

コメント

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