小さい会社の1人SEの開発記というか奮戦記

  1. Excel
  2. 663 view

実は以外にはまる最終行の取得方法を解説【Excel VBA】

よく使うんだけど実は奥が深い最終行の取得について今回はまとめます。

最終行の取得でなぜはまる?

最終行を取得しようとして行を下に追いかけて行って空白行がある場合は、その上を最終行と認識してしまいます。

間違って行を挿入してしまった場合とかに発生しますが、処理行数をチェックした時に「全然足りない!」ってギョっとしますよね。

最終行を取得するVBA

よく使用するのはA列の最終行を取得する
Range(“A1”).End(xlDown).Row
Cells(1,1).End(xlDown).Row

では無いでしょうか。

ほぼ決まり文句みたいなものですね。丸暗記している人も多いと思います。
Rangeであればアルファベット、Cellsであれば2項目目で検索する列を指定します。

でもこれでは空白行があるとその後ろが漏れてしまいます。

A B C
1
2
3
4
5
6
7
8

Y = Range(“A1”).End(xlDown).Row
とすると Y には 3 が代入されます。

最終行から上に向かってチェックする

実際に確認する場合はキーボードを使って Ctrl + ↓ でワークシートの最終行に移動し、次に Ctrl + ↑ と入力してデーターの最終行に移動して最終行をチェックしますよね。

A列を確認対象にして、これを VBA で記述すると
Cells(Cells.Rows.Count, 1).End(xlUp).Row
になります。こちらを定型文として暗記することをおすすめします。

上記例で
Y = Cells(Cells.Rows.Count, 1).End(xlUp).Row
とすると Y には 6 が代入されます。

確認はメッセージボックスやイミディエイトウィンドウを使うと良いです。
Msgbox Cells(Cells.Rows.Count, 1).End(xlUp).Row
Debug.Print Cells(Cells.Rows.Count, 1).End(xlUp).Row

Excelの最近記事

  1. 日本語をエンコードする【Excel VBA】

  2. 商品コードなど長い数値だけの文字列を指数表示させない【Excel VBA】

  3. VBAで改行を指定する【Excel】

  4. 入力規則のプルダウン連携【Excel】

  5. 最短手順で計算式を保護する【Excel】

関連記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA


お薦め書籍

最近の記事

  1. Access

    Accessの数値型ではまる・・・。
  2. Excel

    日本語をエンコードする【Excel VBA】
  3. Access

    クエリで日付から曜日を算出する。【Access】
  4. PCパーツ

    ASUS AMD Ryzen 4000 シリーズ搭載小型ベア…
  5. Microsoft365

    コンデジをTeamsのWebカメラに使う
  6. SQL Server

    SQL文で今日から7日前までを指定する