★For...Next ステートメント 繰り返し処理 その2
 

◎ If...Then...Elseステートメントと併用することで、
 始まりから終わりまでの処理の間で、
 条件式に一致するものはAの処理を、一致しないものはBの処理をするというように、
 繰り返し処理を行う中で、条件によって処理を仕分けすることが出来ます。


  For 変数名 = 始まり To 終わり

     If 条件式 Then
       条件に一致した時の処理
     Else
       条件に一致しなかった時の処理
     End If

  Next 変数名


 例) セルA1からセルE1までのセルの中で、もしセルが空白なら青色に、空白でなかったら赤色に変えなさい。



前回作ったコードを利用して加工しますね。

For...Nextステートメントの中にIf構文を入れて作りますよ。

Sub fornext()

’A1からE1までのセルが空白なら青色、空白でなかったら赤色に変えます。

Dim フォーネクスト As Long

  For フォーネクスト = 1 To 5

    If Cells(1, フォーネクスト).Value = Empty Then

      Cells(1, フォーネクスト).Interior.ColorIndex = 5

    Else

      Cells(1, フォーネクスト).Interior.ColorIndex = 3

    End If

  Next フォーネクスト

End Sub


さて実行結果はどうでしょうか?
マクロの実行からマクロ「Fornext」を実行して下さいね。



数字が入っているところは赤くなり
空白のところは青くなりましたね。
では解説ですが

Dim
フォーネクスト As Long

  For フォーネクスト = 1 To 5

前回通り、変数「フォーネクスト」に1、2、3、4、5って数字順番に入りますよ。

    If Cells(1, フォーネクスト).Value = Empty Then

これは、<セルA1からE1までのセルが空白であれば>という条件式ですね。

    Cells(1, フォーネクスト).Interior.ColorIndex = 5


セル空白のセルA1、C1、E1の色は青色になります。

    Else
そうでなければということですから、空白でないということですね。

      Cells(1, フォーネクスト).Interior.ColorIndex = 3

セルが空白でないセルB1、D1は色が赤色になります。

    End If


End IfでIf...Then...Elseステートメントは終わりです。
  Next フォーネクスト
そしてこの "Next 変数名" でFor...Nextステートメントは終わりです。

さぁここまできて理解できていればFor...NextステートメントとIf...Then...Elseステートメントはバッチリですね。では、次は、5,10,15,20,25というように数字を飛ばして処理をする方法を解説します。

[トップ][前へ][ステートメント][次へ]