★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というように数字を飛ばして処理をする方法を解説します。 |
|||
|