今回はVBAのFor Eachについて解説します。
シート上は特に準備することが無く、以下のソースコードを実行します。
Sub For_Each() 'For Each プロシージャ
Dim cell_A1_A5 As Range 'Range型の cell_A1_A5 を宣言する。
Dim s As Range 'Range型の s を宣言する。
With ThisWorkbook.Worksheets("Sheet1") '「 ThisWorkbook.Worksheets("Sheet1") 」の記述を省略できる
Set cell_A1_A5 = .Range(.Cells(1, 1), .Cells(5, 1)) 'このファイルのSheet1シートの A1~A5 を cell_A1_A5 に代入する。
End With 'End Wih
For Each s In cell_A1_A5 'In cell_A1_A5 に含まれるセルの数だけ For Each がループされる。
MsgBox s.Row '行位置を表示する。
Next '次の要素へカウントアップ
End Sub 'For Each プロシージャの終わり
A1セルからA5セルをcell_A1_A5とし、For Each文によってcell_A1_A5内の各セルをsとして行位置をメッセージ表示する処理を5回繰り返します。
実行すると1~5とメッセージ表示されることがわかります。
なお、以下の過去記事と組み合わせることで入力したすべてのセルの背景色を黄色くすることもできます。