\ お問い合わせはこちら! /

【VBA Cells徹底解説】動的なセル操作をマスターしてループ処理を最適化!

  • 「Range(“A1”)は見たことあるけど、Cellsってどう使うの?」
  • 「ループで行を動的に指定したいけど方法がわからない」
  • 「RangeとCells、どう使い分ければいいの?」

実は、Cellsを使いこなせれば行・列を柔軟に指定できるようになり、ループ処理の幅も一気に広がります!

この記事では、基本構文から実践的な活用法、Rangeとの違いまで、初心者でもすぐに使える形で解説します!

VBAのCellsプロパティとは?行列指定でセルを操作できる仕組み

Cellsプロパティは、Excelのセルを行番号・列番号で指定できる構文です。

Rangeが「A1」などのアドレスでセルを指定するのに対し、Cellsは「何行目・何列目か」で動的に操作できます。

基本構文とシンプルな使用例

Sub SampleCells()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")

    ' A1セルに"Hello"と入力
    ws.Cells(1, 1).Value = "Hello"
End Sub

このコードでは、1行1列目(=A1セル)に”Hello”を入力しています。

行・列を数字で指定することで、変数を使ったセルの自動化が可能になります。

ループ処理との相性抜群!Cellsで行を動的に操作

Cellsの強みは、ループ処理での柔軟性の高さ。たとえば、A列に1〜10までの数値を入力するような処理は、RangeよりCellsが断然使いやすいです。

ForループとCellsで自動入力する例

Sub LoopWithCells()
    Dim i As Long
    For i = 1 To 10
        Cells(i, 1).Value = i * 10 ' A列に10の倍数を入力
    Next i
End Sub

このように、行番号を変数で動かせるのがCellsの魅力。

大量のデータ処理や、条件分岐付きの行操作にも柔軟に対応できます。

条件によるセル操作:Cellsで書式を変更してみよう

Cellsを使えば、特定条件を満たすセルだけを強調表示することも簡単にできます。以下は、売上が一定値を超えた行の背景を変更する例です。

値に応じてセルの背景を塗り分ける

Sub HighlightHighValues()
    Dim i As Long
    For i = 2 To 20 ' 2行目以降のE列を対象
        If Cells(i, 5).Value > 100000 Then
            Cells(i, 5).Interior.Color = RGB(255, 230, 230)
        End If
    Next i
End Sub

このように、データをチェックして視覚的に伝えたい時の処理にもCellsは大活躍します。

Rangeとの違いと使い分けのコツ

Rangeは「アドレスで指定」、Cellsは「行列番号で指定」。どちらもセルを操作しますが、使いどころは異なります。

使い分け早見ポイント

用途推奨プロパティ
A1やB2など明確なセルRange
行や列を動的に指定したいCells
行×列で範囲指定Range(Cells(), Cells())

RangeとCellsを組み合わせた例

Sub DynamicRangeWithCells()
    Dim startRow As Long: startRow = 2
    Dim endRow As Long: endRow = 10

    ' A2:A10 に「OK」と入力
    Range(Cells(startRow, 1), Cells(endRow, 1)).Value = "OK"
End Sub

このように、Cellsで開始・終了セルを指定し、Rangeでその範囲を一括操作することで、柔軟かつ効率的に範囲処理が可能になります。

まとめ:Cellsを使いこなせば、VBA操作の自由度が一気に上がる!

Cellsプロパティは、VBAの繰り返し処理・条件付き処理に欠かせない超便利なツールです。Rangeと違って行列指定ができるので、データ量が変動するシーンや動的な処理ではとても重宝します。

今回のまとめ

  • ✅ 固定のセルはRange、動的セルはCells!
  • ✅ ループ処理ではCellsがベスト!
  • ✅ RangeとCellsの併用でさらに効率UP!

「なんとなくRangeばかり使ってた…」という人も、これを機にCellsを味方にしてみてください😊

この記事が気に入ったら
フォローしてね!

シェア・記事の保存はこちら!

この記事を書いた人

CFXLOGのアバター CFXLOG プログラマ

メイン言語はPython。本ブログでは、実務や普段の学習で学んだことをアウトプットしています。
基本情報技術者試験合格者。

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)