🦈
Excel VBA_For Each~Nextステートメント
この記事ではFor Each~Nextステートメントについてまとめます。For Each~Nextはコレクションの全ての要素に対して繰り返し処理を実行します。構文はこちらです。
For Each オブジェクト変数 In コレクション
処理
Next
具体的にはコレクション内の全てのオブジェクトを順番にオブジェクト変数へ代入し、処理をおこなっていきます(各オブジェクトへの参照を順番に代入するためオブジェクト変数が必要となっています。)
サンプルコード
具体的なコードを見ていきましょう。
セルの要素に対し処理を実行
指定された範囲内のセルに対して、もし空白だった場合に黄色を塗っていきます。
Dim 参照オブジェクト As Range
For Each 参照オブジェクト In Range("B3:C12")
If 参照オブジェクト = "" Then
参照オブジェクト.Interior.ColorIndex = 6
End If
Next
指定された範囲内のRangeオブジェクトに対して、各要素を空白かどうか?をチェックしました。実行結果は以下です。
全シートを印刷プレビュー
次にブック内の全シートに対して印刷プレビューを実行します。
Dim 参照オブジェクト As Worksheet
For Each 参照オブジェクト In Worksheets
参照オブジェクト.PrintPreview
Next
同じことをFor文で実現すると以下のようになります。Count
によって要素数を計算してFor文と組み合わせています。
Dim i As Integer
For i = 1 To Worksheets.Count
Worksheets(i).PrintPreview
Next i
For Eachを使用すると全要素に対して処理を加えることが明白なので、場面に応じて自分の使いやすい方で試してみて下さい。
Discussion