For~Nextステートメント マクロ講座23回-2

繰り返し処理をするFor~Nextステートメント

23回の続きです。記録のマクロでセルを同じ色に塗るという操作を10回繰り返しましたが、 それをFor~Nextステートメントを使って書き換えます。
(サンプルファイルは、こちらから マクロ講座23回サンプルデータ

For~Nextステートメント解説

繰り返し命令は非常に重要です。
繰り返し命令が、できるからこそマクロを作る価値があるといっても過言ではないでしょう。
For~Nextステートメントは、最も代表的なものです。

For~Next ステートメントは

と記述するものす。

For と Next の直後に記される変数名(この例ではカウンタ変数)はと繰り返し回数までの処理で使われる変数名は同じものでなければなりません。
この命令の意味は、
「カウンタ変数を開始値から終了値まで変化させ、Next文まで の間に記された『繰り返し回数までの処理(命令)』を繰り返しなさい。」です。

For~Next をサンプルマクロに当てはめる

これをサンプルのセルの背景色をA1からA10まで赤く塗る記録マクロに適用すると
 For カウンタ変数 = 1 To 10
 Range("A" & カウンタ変数).Interior.ColorIndex = 3  ' 繰り返し回数までの処理
 Next
のようになるのです。 この例の場合は For 文と Next 文の間に記された命令が カウンタ変数が10になるまで10回繰り返されることになります。
For ~Nextは、次のように使います。 カウンタに使う変数は、宣言しないといけません。
それから変数の型も指定しないといけませんね。
変数は、ローマ字でkとかiとか書いてもいいのですが、
変数を先程は、カウンタ変数としましたが、こんどは「行は変数」という名前にします。
Sub 背景を塗るColorIndexで()
    Dim 行は変数 As Long
    For 行は変数 = 1 To 10
    Range("A" & 行は変数).Interior.ColorIndex = 3
    Next
End Sub
Sub 背景を塗るColorプロパティで()
    Dim 行は変数 As Long
    For 行は変数 = 1 To 10
    Range("A" & 行は変数).Interior.Color = RGB(255,0,0)
    Next
End Sub
それから、セルの範囲は、Range("A1")という指定方法のほかに、
Cells(1 , 1)という指定方法もあります。

列番号はA,B,Cを1,2,3と読み替えるだけです。
マクロの時は、Cells(行番号,列番号)のほうが、扱いやすいですね。
セルを斜めに赤く塗りつぶすマクロは、Cells(行番号,列番号)と、
For~Nextを使って、次のようになります。

Sub セル斜めに色を塗る()
    Dim 行は変数 As Long
    For 行は変数 = 1 To 10
    Cells(行は変数,行は変数).Interior.ColorIndex = 3
    Next
End Sub
    
For~Nextステートメントについては、まだまだ例題を紹介していきますよ。

今日の講義は以上です。お疲れ様でした。
スポンサーリンク
スポンサーリンク