マクロ講座23回-2

繰り返し処理をするFor〜Nextステートメントなぜ重要

23回の続きです。
(サンプルファイルは、こちらから マクロ講座23回サンプルデータ

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

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

For〜Next ステートメントは


と記述するものす。

For と Next の直後に記される変数名(この 例ではK)は同じものでなければなりません。
この命令の意味は、
「変数Kを1から10まで変化させ、Next文まで の間に記された『ある処理(命令)』を繰り返しなさい。」です。
すなわち、最初に配列Kに1を保存し、
Next 文までの命令を実施し、For 文に戻る。
次にKに2を保存し、Next 文までの命令を実施し、For 文に戻る。
以下同様にして、最後にKに10を保存して Next 文までの命令を実施し、
すべての繰り返し が終わったので、Next 文の次の命令に進む。

この例の場合は For 文と Next 文の間に記された命令が 10回繰り返されることになります。

For〜Next による繰り返し処理 前頁からのつづき

前頁で予備知識としてセルを赤く塗るマクロの記録をしてみましたが、
長いので、コードをすっきりスリムにしてみました。

かなりスリムになったのですが、それでも10回繰り返しています。
Sub Macro2()
        Range("A1").Interior.ColorIndex = 3
        Range("A2").Interior.ColorIndex = 3
        Range("A3").Interior.ColorIndex = 3
        Range("A4").Interior.ColorIndex = 3
        Range("A5").Interior.ColorIndex = 3
        Range("A6").Interior.ColorIndex = 3
        Range("A7").Interior.ColorIndex = 3
        Range("A8").Interior.ColorIndex = 3
        Range("A9").Interior.ColorIndex = 3
        Range("A10").Interior.ColorIndex = 3
End Sub
    
このぐらいならいいのですが、それが1000回だと、どうですか?
もう、うんざりですね。
そこで、For〜Nextを使うのです。
ここでは、セル範囲を変数で表してみましょう。

For 〜Nextを使う

For 〜Nextは、次のように使います。カウンタに使う変数は、宣言しないといけません。
それから変数の型も指定しないといけませんね。
変数は、ローマ字でkとかiとか書いてもいいのですが、
変数を「行は変数」という名前にします。
 Sub Macro3()
    Dim 行は変数 As Long
    For 行は変数 = 1 To 10
    Range("A" & 行は変数).Interior.ColorIndex = 3
    Next
End Sub
    
それから、セルの範囲は、Range("A1")という指定方法のほかに、
Cells(1 , 1)という指定方法もあります。

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


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

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