For文 VBAで自動化 VBAテクニック集 VBA一覧 文法・構文

【VBA】for next で複数条件の処理方法(For Next×If)

Excel VBAでは、For-NextループとIf文を組み合わせることで、条件に基づいて特定のデータのみを選択的に処理することができます。ここでは、この組み合わせの基本構文とその使い方を詳しく解説します。

For NextとIf文の組み合わせ基本構文

For-NextループとIf文を組み合わせた基本的な構文は以下のようになります。

For 変数 = 開始値 To 終了値

If 条件式 Then

' 条件を満たした場合の処理

End If

Next 変数

この構文では、ループの各反復で変数が開始値から終了値まで変化します。ループ内のIf文は、特定の条件式を評価し、その条件を満たす場合にのみ内部の処理を実行します。これにより、特定の条件に基づいて処理を分岐させることが可能です。

For NextとIf文の組み合わせ実践的な例

例1【特定の条件を満たすデータの処理】
以下のVBAコードは、1から100までの数値の中で、5で割り切れる数値だけに特定の処理を行う例です。

Sub ProcessSpecificNumbers()

Dim i As Integer
For i = 1 To 100

If i Mod 5 = 0 Then

Debug.Print i & " is divisible by 5."

End If

Next i

End Sub

このサンプルコードでは、i Mod 5 = 0 の条件を使用して、5で割り切れる数値だけを識別し、それに対してのみ処理を行っています。

例2【複数の異なる条件を組み合わせる】
複数の異なる条件を組み合わせて、より複雑なデータ処理を行う例を見てみましょう。

Sub ProcessMultipleConditions()

Dim i As Integer
For i = 1 To 100

If i Mod 2 = 0 And i Mod 5 = 0 Then

Debug.Print i & " is divisible by both 2 and 5."

ElseIf i Mod 3 = 0 Then

Debug.Print i & " is divisible by 3."

Else

Debug.Print i & " does not meet any special condition."

End If

Next i

End Sub

このサンプルコードは、1から100までの数値に対して3つの異なる条件をチェックし、それぞれの条件に応じて異なる出力を行います。ここでAnd演算子とElseIfを使用して、複数の条件を効果的に扱っています。

【VBA】演算子の処理される優先順位

まとめ

For-NextループとIf文を組み合わせることで、条件に基づいたデータ処理の効率と精度を大幅に向上させることができます。この手法は、データ分析やデータ整理、報告など、多岐にわたるアプリケーションで有効です。条件に応じて処理を分岐させることで、より複雑なロジックも簡潔に表現できます。

-For文, VBAで自動化, VBAテクニック集, VBA一覧, 文法・構文