関数・メソッド

コレクションや配列に対してループ処理を行う【For Each Next】【ExcelVBA】

For Each Nextステートメント

コレクションに対してループ処理を行いたいときはFor Each Nextステートメントが便利です。
全てのシートから特定のシート名を調べたり、印刷することができます。

構文
For Each element In group
  [ statements ]
  [ Exit For]
  [ statements ]
Next [ element ]

elementコレクションの各要素を繰り返す変数を指定します。必須。
groupコレクション名または配列名を指定します。必須。
statementsgroup に指定した各要素を対象に実行するステートメントです。省略可。

For Each Nextステートメントを使ったサンプルコード

'■該当するシートを探しだし、該当すれば赤く色がつく
Sub Sample_Sheetname()
    Dim ws As Worksheet
  'ワークシートを対象にループ処理を行う
    For Each ws In ThisWorkbook.Worksheets
  'シート名が「Sheet5」か判定する
    If ws.Name = "Sheet5" Then
       '「Sheet5」が見つかった赤ときの処理
       ws.Tab.Color = RGB(255, 0, 0)
       MsgBox "該当箇所が赤く表示されます"
       Exit For 'ループ処理を抜ける
    End If
  Next
  
End Sub

注意点

  • group に指定したコレクション全てに対して処理を行いますので、処理の順序に保証はありません。
    ※処理順序を重視する場合は使用を避けてください。

関連記事

コメント

タイトルとURLをコピーしました