★For...Next ステートメント Step処理
 

◎ 今回は、2、4、6、8、10とか5、10、15、20とか数字が順番でなく、飛び飛びで処理を行っていく方法です。
それには"Step"を使いますよ。


  For 変数名 = 始まり To 終わり Step 増減数

      繰り返される処理

  Next 変数名


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



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

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

Sub fornext()

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

Dim フォーネクスト As Long

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

    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 Step 2

Step 2とありますので、1から始まって2つずつ加算されていきます。
変数「フォーネクスト」には1、3、5って数字が入りますよ。

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

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

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


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

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

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

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

    End If


  Next フォーネクスト

今回は奇数でしたが、偶数の時はどうしたらいいのでしょうか?
もうお分かりですよね!たぶん!

答えは
 For フォーネクスト = 2 To 5 Step 2
というように1から始めずに、2から始めればいいんですね。

For...Nextステートメントにも入れ子は、OKですので、1から500までの間で、さらに5から300までの間でステップ5ずつだとか、いろいろ出来ますよ。

私が作った参考ファイルです。ダウンロード

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