For Each文の基本コード
Dim cell As Range
For Each cell In Range("A1:A5")
cell = "〇"
Next cell解説はこちら
🛠️コードの解説
- Dim cell As Range
セルを入れるための変数「cell」を用意 - For Each cell In Range(“A1:A5”)
A1~A5のセルを1つずつ「cell」に取り出す - cell = “〇”
取り出したセルに「〇」を入力
繰り返し処理というと、For文ではダメなの?という疑問が出ますよね。
実はFor文とFor Each文では、繰り返し処理の方法が少し異なります。
- For文
変数の値を変化させながら繰り返し処理を行います。 - For Each文
指定した範囲のセルなどを1つずつ取り出しながら処理を行います。
では、A1~A5のセルに「〇」を入力する場合、For文だとどうなるかコードを見てみましょう。
Sub ForSample()
Dim i As Long
For i = 1 To 5
Cells(i, 1) = "〇"
Next i
End Sub
- Dim i As Long
繰り返し回数を数えるための変数「i」を用意 - For i = 1 To 5
「i」を1~5まで変化させながら繰り返す - Cells(i, 1) = “〇”
A列の「i」行目のセルに「〇」を入力
For文とFor Each文は、どちらも繰り返し処理に使えますが、何を基準に繰り返すかが異なります。
- For文
「何行目・何列目」という番号を使って処理したい場合に向いています。
例えば、表の2行目から6行目までを順番に処理する場合などに使います。 - For Each文
処理したい範囲や対象を指定し、その中にあるセルなどを1つずつ取り出して処理したいときに向いています。
例えば、A1~A5のセルを処理する場合、セルの行番号を1、2、3……と変化させるのではなく、A1~A5という範囲を指定して、その中のセルを順番に処理できます。
このように、行番号や列番号などの数値を変化させながら処理したい場合はFor文、指定した範囲や対象を1つずつ処理したい場合はFor Each文が使いやすいでしょう。
