データのある最終行が何行目なのか、自動で取得するためのコードの紹介です
最終行の取得
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
コメント