【Excel VBA】最終行の取得の方法

VBA

データのある最終行が何行目なのか、自動で取得するためのコードの紹介です

最終行の取得

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

上方向に最終行をとる。 具体的な使い方を紹介します

★2行目から最終行まで 単価(B列)と数量(C列)をかけて金額を出すのを繰り返す

Sub example1()

    Dim maxRow As Long
    maxRow = Cells(Rows.Count, 1).End(xlUp).Row
    
    Dim i As Long
    For i = 2 To maxRow
        Cells(i, "D").Value = Cells(i, "B").Value * Cells(i, "C").Value
    Next i
               
End Sub

☆出力結果

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

下方向に最終行をとる。 具体的な使い方を紹介します

★VBAコードを使用して、最終行を取得し、その次の行に新しいデータを追加します。

Sub AddSalesData()
    Dim lastRow As Long
    lastRow = Cells(1, 1).End(xlDown).Row
    Cells(lastRow + 1, 1).Value = "2024/08/04"
    Cells(lastRow + 1, 2).Value = "商品D"
    Cells(lastRow + 1, 3).Value = 7
    Cells(lastRow + 1, 4).Value = 800
    Cells(lastRow + 1, 5).Value = Cells(lastRow + 1, 3).Value * Cells(lastRow + 1, 4).Value
End Sub

☆出力結果

Cells(Rows.Count,1).End(xlToLeft) と  
Cells(Rows.Count,1).End(xlToRight)

左右方向に飛ぶこともできます

★セルE3から左方向にデータのある最終セルを見つけ、そのセルの背景色を黄色に変更。 セルB5から右方向にデータのある最終セルを見つけ、そのセルの背景色を緑色に変更

Sub ChangeCellColors()
    Dim targetCellLeft As Range
    Dim targetCellRight As Range
    
    ' 左方向に最も近いデータのセルの背景色を黄色に変更
    Set targetCellLeft = Cells(3, 5).End(xlToLeft)
    targetCellLeft.Interior.Color = RGB(255, 255, 0)
    
    ' 右方向に最も近いデータのセルの背景色を緑色に変更
    Set targetCellRight = Cells(5, 2).End(xlToRight)
    targetCellRight.Interior.Color = RGB(100, 255, 100)
End Sub

コメント

タイトルとURLをコピーしました