Excel VBA | Range と Cells の使い分け早見表(Excel VBA 初心者向け)

VBA
スポンサーリンク

Range と Cells を組み合わせて「最終行まで処理する」例

Excel VBAでは「データがどこまで入っているか分からない」ケースがよくあります。そんなときに便利なのが Range と Cells の組み合わせです。これで「最終行まで自動で処理」できます。


基本の流れ

  • 最終行を調べる
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
VB

Rows.Count → Excelの最大行数(例: 1,048,576行)
.End(xlUp) → 一番下から上に向かってデータがあるセルを探す
Row → そのセルの行番号を取得

👉 この例では「A列の最終行」を調べています。

  • Range と Cells を組み合わせて処理範囲を指定
Range(Cells(1, 1), Cells(lastRow, 1))
VB

A1から最終行までの範囲を自動で指定できる


例1:A列のデータをB列にコピー

Sub A列をB列にコピー()
    Dim lastRow As Long
    Dim i As Long

    ' A列の最終行を取得
    lastRow = Cells(Rows.Count, 1).End(xlUp).Row

    ' 1行目から最終行まで処理
    For i = 1 To lastRow
        Cells(i, 2).Value = Cells(i, 1).Value
    Next i
End Sub
VB

解説

  • Cells(i, 1) → A列のi行目
  • Cells(i, 2) → B列のi行目
  • ループで最終行まで繰り返しコピー

例2:A列の数値を2倍してB列に書き込む

Sub A列を2倍してB列へ()
    Dim lastRow As Long
    Dim i As Long

    lastRow = Cells(Rows.Count, 1).End(xlUp).Row

    For i = 1 To lastRow
        If IsNumeric(Cells(i, 1).Value) Then
            Cells(i, 2).Value = Cells(i, 1).Value * 2
        End If
    Next i
End Sub
VB

解説

  • IsNumeric → 数値かどうか判定
  • 数値だけを対象にして安全に処理

例3:範囲をまとめて色付け

Sub A列の範囲を色付け()
    Dim lastRow As Long

    lastRow = Cells(Rows.Count, 1).End(xlUp).Row

    ' A1〜A最終行を黄色に
    Range(Cells(1, 1), Cells(lastRow, 1)).Interior.Color = vbYellow
End Sub
VB

解説

  • Range(Cells(1,1), Cells(lastRow,1)) → A1から最終行までの範囲
  • .Interior.Color → 背景色を変更

まとめ

  • Range は範囲指定に便利
  • Cells は数値で動的に指定できる
  • 組み合わせると「最終行まで自動処理」が可能
VBA
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました