For文を使う際、最終行を自動取得できたら、毎回いちいち画面で確認必要がなくなります。今日は、最終行・列の自動取得方法を見てみましょう。

 

最終行(.End(xlDown))

 

Sub test()

    Dim myMax As Long
    
    myMax = Cells(Rows.Count, 1).End(xlUp).Row

    MsgBox "A列の最終行は:" & myMax

 

End Sub

 

実行結果

 

Rows.Countは、シートの行数の意味で、Cells(Rows.Count, 1)なら、A列の一番下のセルとなります。.End(xlUp)で、一番下のセルから、上を向かって、最初に空白以外のセルに移動します。.Rowでそのセルの行番号を所得します。

 

For文との組合せ例

Sub test3()
    '東京都女性の名前を赤フォントにする
    Dim i As Long
    Dim MaxR As Long

 

    MaxR = Cells(Rows.Count, 1).End(xlUp).Row
    
    For i = 2 To MaxR
        If Cells(i, "C").Value = "" And _
            Cells(i, "E").Value = "東京都" Then
            
                    Cells(i, "A").Font.ColorIndex = 3
        End If
    Next i

End Sub

 

データの行数がわからない時、.End(xlDown)で自動的に最終行を取得した場合、コードの汎用性が高くなります。ぜひ活用してみてください。

 

実行結果

 

 

最終列(End(xlToLeft))

 

Sub test3()

    Dim myCol As Long
    
    myCol = Cells(2, Columns.Count).End(xlToLeft).Column
    
    MsgBox "2行目の最終列は:" & myCol

 

End Sub

 

実行結果

 

 

Columns.Countは、シートの列数の意味で、Cells(2, Columns.Count)なら、2行目の一番右のセルとなります。.End(xlToLeft)で、一番右のセルから、左を向かって最初に空白以外のセルに移動します。.Columnでそのセルの列番号を取得します。

 

 

 

関連記事

 

VBA 繰り返し処理For Next

 

 

― ― ― ― ― ― ― ― ― ― → Excel VBA基礎入門もくじ へ戻る