連続で値が入力されている特定列の最終行取得
下記画像の場合においてA列とB列の入力されている最終行を取得します。
実装コードは下記の通り
Sub get_lastrow1()
Dim Col_A_Lastrow As Long
Col_A_Lastrow = Range("A1").End(xlDown).Row
Dim Col_B_lastrow As Variant
Col_B_lastrow = Range("B1").End(xlDown).Row
MsgBox "A列の最終行は" & Col_A_Lastrow & "です。" & vbCrLf & "B列の最終行は" & Col_B_lastrow & "です。"
End Sub
実行結果
解説
VBAを使わずに通常のマウスとキーボードの操作で、
A1のセルを選択した状態でCtrl+↓を押してみてください。
最終行まで移動します。
その動作をVBAで行っています。
・「Range(“A1”)」はA1をアクティブセルにしています。
・「End(xlDown)」はCtrl+↓の動作を行っています。
・「.Row」で行数を取得します。
列中に空白がある特定列の最終行取得
下記画像の場合においてA列とB列の入力されている最終行を取得します。
実装コードは下記の通り。
Sub get_lastrow2()
Dim Col_A_Lastrow As Long
Col_A_Lastrow = Cells(Rows.Count, 1).End(xlUp).Row
Dim Col_B_lastrow As Variant
Col_B_lastrow = Cells(Rows.Count, 2).End(xlUp).Row
MsgBox "A列の最終行は" & Col_A_Lastrow & "です。" & vbCrLf & "B列の最終行は" & Col_B_lastrow & "です。"
End Sub
実行結果
解説
VBAを使わずに通常のマウスとキーボードの操作で、
A列の最終行を選択(A10を選択してCtrl+↓で最終行にいけます)した状態でCtrl+↑を押してみてください。
A8が選択されます。
その動作をVBAで行っています。
・「Cells(Rows.Count, 1)」はA列の最終行を選択しています。
「Rows.Count」は値入力の有無を問わずシート中の最終行を取得します。
・「End(xlUp)」はCtrl+↑の動作を行っています。
・「.Row」で行数を取得します。
全ての列の中の最終行取得
下記画像の場合においてすべての列の内入力されている最終行を取得します。
実装コードは下記の通り。
Sub get_lastrow3()
Dim Sheet_Lastrow As Long
Sheet_Lastrow = Range("A1").SpecialCells(xlLastCell).Row
MsgBox "最終行は" & Sheet_Lastrow & "です。"
End Sub
実行結果
解説
VBAを使わずに通常のマウスとキーボードの操作で、
A1のセルを選択した状態でCtrl+Shift+Endを押してみてください。
全ての列の中の最終行を使用しているセルまで範囲選択されます。
この場合であればD9のセルまで選択されます。
※D9のセルが選択されない場合は、一度ブックを上書き保存してみてください。
その選択された最終行のセルの行数を取得します。
その動作をVBAで行っています。
・「Cells(Rows.Count, 1)」はA列の最終行を選択しています。
「SpecialCells(xlLastCell)」全ての列の中の最終行のセルを選択します。
・「.Row」で行数を取得します。
コメントを残す