★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ずつだとか、いろいろ出来ますよ。 私が作った参考ファイルです。ダウンロード |
|||
|