指定した列の入力されている最終行を取得するマクロを作成します。

途中に空白セルがある場合でも無視されます。

最終セルに入力したい場面はよくあるので、よく使うマクロです。


列の入力されている最終行を取得するマクロ

VBA入力画面
プログラム入力画面

入力したコードです。

Sub My列の入力最終行()
    Dim lnb As Long
    Dim lnc As Long
    
    Range("B65536").Select
    lnb = Selection.End(xlUp).Row
    
    Range("C65536").Select
    lnc = Selection.End(xlUp).Row
    
    Range("A1").Select
    MsgBox "B列の入力最終行:" & lnb & vbCrLf & "C列の入力最終行:" & lnc
End Sub

プログラムの説明


Subプロシージャの宣言
Sub My列の入力最終行()
変数を宣言
Dim lnb As Long
Dim lnc As Long
B65536セルを選択
Range("B65536").Select
上方向で最終行を取得
lnb = Selection.End(xlUp).Row
C65536セルを選択
Range("C65536").Select
上方向で最終行を取得
lnc = Selection.End(xlUp).Row
A1セルを選択
Range("A1").Select
結果をMsgBoxで表示 vbCrLf で改行されます
MsgBox "B列の入力最終行:" & lnb & vbCrLf & "C列の入力最終行:" & lnc
プロシージャの終了
End Sub

列の入力されている最終行を取得するマクロの実行画面

B列は15行目、C列は13行目が最終行なので「B列の入力最終行:15、C列の入力最終行:13」と表示されました。
列の最終行を求める

3行目に空白行を挿入し、正しく取得できるかテストします。1行増えたので「B列の入力最終行:16、C列の入力最終行:14」と正確に取得できました。
最終行の取得サンプル

Excelマクロのサンプルファイル:フリーダウンロード








Copyright (C) excel.usefulhp.com All rights reserved.