EXCEL VBAで最終行を取得する方法

EXCEL-VBA-get-row
  • URLをコピーしました!

VBAを使用すると、簡単かつ効率的にエクセルシートの最終行を取得することができます。

Excelシートでデータを管理する場合、最終行は非常に重要な情報です。

EXCELの最終行は、シート内の最後に追加されたデータであり、この情報によりプログラムを制御することができます。

例えば、次のような場合にEXCELの最終行のデータが必要となります。

  • 最終行を特定することで、自動的に新しいデータを正確に挿入することが可能。
  • 最終行の情報を使用して、データ範囲を特定し、グラフ作成や集計・分析が可能。

この記事では、VBAコードを使用してシート内の最終行を簡単に検索する方法を説明します。

この記事を読めばわかるようになること
  • EXCELデータの最終行を取得する方法
  • EXCELデータの最終行を取得して、繰り返し処理を行う方法

短いコードとわかりやすい説明で、Excelマクロを作成する上で必要な最終行の情報を手軽に取得する方法を学びましょう!

目次

VBAで最終行を取得する方法は

VBAで最終行を取得する方法の画像

最終行を取得するためのテストデータ

最終行を取得するためのEXCELデータ

連続したデータのように見えますが、5行目が空白行となっています。

最終行取得方法(その1)

一つ目は、Cells(1, 1).End(xlDown).Row で取得する方法です。


Sub sample_lastrow_1()

Dim lastrow As Long
 
  'A列を参照し最終行を取得
  lastrow = Cells(1, 1).End(xlDown).Row
  
  MsgBox lastrow

End Sub

実際にEXCELでA1のセルにカーソルをあてた状態で、キーボードで、「Ctrl + ↓」 を操作してみてください。

A4のセルに移動しましたね。

続したデータで途中の空白行のデータが存在する場合、空白行の1行手前まで自動で移動し、その値の行番号を取得するコーディングです。

では実際に、VBAを実行して、最終行を取得してみましょう。


メッセージボックスで4が表示されましたね。

Cells(1, 1).End(xlDown).Row の実行結果

最終行取得方法(その2)

では途中に空白行が存在するデータであった場合でも、本当の最終行を取得したい場合はどうするのでしょうか?

その場合は、

Cells(Rows.Count, 1).End(xlUp).Row

を使用します。

Sub sample_lastrow_2()

Dim lastrow As Long
 
  'A列を参照し最終行を取得
  lastrow = Cells(Rows.Count, 1).End(xlUp).Row
  
  MsgBox lastrow


End Sub

Cells(Rows.Count, 1).End(xlUp).Row の意味について

Rows.CountにはEXCELの表全体の最終行の値が格納されています。

端末のExcelがOffice2007以降のバージョンでしたら、1,048,576行が最大行数の値です。

つまりA列の1,048,576行目から、「Ctrl + ↑」を押して .End(xlUp) しカーソル移動する。という意味です。

何となく理解できますよね。では実際に、VBAを実行して、最終行を取得してみましょう。

Cells(Rows.Count, 1).End(xlUp).Row の実行結果

メッセージボックスで10が表示されましたね。

・途中の空白行まで処理する必要がある場合は
 Cells(1, 1).End(xlDown).Row を使用する。

・空白行が存在しても、EXCELデータの最終行を取得する場合は、
 Cells(Rows.Count, 1).End(xlUp).Row を使用する。

最終行取得のコーディング例(簡単)

最終行取得のコーディング例(簡単)

では、繰り返し処理と最終行取得を織り交ぜながら、Excelの表データから金額の合計額を算出するコーディングを
してみましょう。

Sub sample_lastrow_3()

Dim lastrow As Long
Dim gokei_kgk As Long
 
 
  'A列を参照し最終行を取得
  lastrow = Cells(Rows.Count, 1).End(xlUp).Row
  
  '最終行まで繰り返し、C列の合計金額を算出
  For cnt = 1 To lastrow
    gokei_kgk = Cells(cnt, 3) + gokei_kgk
  Next cnt

  '合計額を表示
  MsgBox gokei_kgk

End Sub

VBAを実行すると・・・

テストデータC列の合計金額

合計金額が表示されました。

最終行取得を取得するメリット

最終行取得を取得するメリットの画像

通常、エクセルデータは、シートにあるデータの増減が発生することが多いです。

プログラムでデータを処理する際は、基本的に全件処理することが大半です。

毎回、毎回、マクロ実行する際に、対象データが何件あるかを調べてプログラムを書き替えるなんてことはやりたくありませんよね。

つまりプログラムで自動で最終行を取得し、可変データに対して全件処理ができるようにしたい

そんなとき、最終行の取得をVBAで実装すれば、簡単に繰り返し処理と組み合わせて業務ロジックを作成することが可能になります。

まとめ

まとめの画像

VBAコードを使用して最終行を検索する方法を説明しました。

この方法を使用することで、Excelマクロを作成する際に必要な最終行の情報を簡単に取得することができます。

EXCELVBAによる自動化をより効率的に行いましょう。

EXCEL-VBA-get-row

この記事が気に入ったら
いいねしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次