For~NextはVBAで繰り返し(ループ)処理を行うための代表的な構文です。それでは具体的な書き方についてご説明します。

For~Next処理

<構文>

For カウンタ変数 = 初期値 To カウンタ最大値
	~繰り返し処理内容を記述~
Next カウンタ変数

<コード:A1~A10までのセルに1~10の数値を入力する>

Dim i As Integer    '変数iをカウンタとして設定'
    For i = 1 To 10
        Range("A" & i) = i
    Next i

<実行例>
【VBA入門】For〜Next文で繰り返し処理を行う方法
例では、カウンタ変数としてiを設定しています。カウンタ変数iの初期値は1で、For~Nextまでが処理される毎に1ずつ増加していき、最大値の10になると繰り返しを終了します。

カウンタ変数の増加分を設定する

通常カウンタ変数は1ずつ増加していくのですが、For分の末尾にStepを設定することで、カウンタ変数に加算される値を変更することができます。
<コード>

    Dim i As Integer
    Dim buf As String   '文字列を格納するための変数bufを設定'
    For i = 2 To 10 Step 2  '2ずつiが増加'
        buf = buf & " " & i
    Next i
    MsgBox "2から10までの偶数は" & buf & "です。"

<実行例>
【VBA入門】For〜Next文で繰り返し処理を行う方法
なお、Stepの後にマイナスの値を設定することもできます。この場合はマイナスの分だけカウンタ変数が減少していくので、Toに最小値を設定することになります。

For~Nextを入れ子にする

For~Nextの中にFor~Nextを入れてループを多重にさせることも可能です。(入れ子構造:ネストとも呼びます。)それではシートの列数をx、行数をyとして九九の表を作ってみましょう。
<コード>

    Dim x As Integer, y As Integer
    For x = 1 To 9
        For y = 1 To 9  'For文の中にFor文を記述'
            Cells(y, x) = x & "×" & y & "=" & x * y
        Next y
    Next x

<実行例>
【VBA入門】For〜Next文で繰り返し処理を行う方法
ちなみにNextの後のカウンタ変数の記述は省略することもできますが、上記のように複雑なコードになると、ループの終了が分かりにくくなり間違いを引き起こす原因にもなります。Nextの後のカウンタ変数はできるだけ明記しておくようにしましょう。

まとめ

For~Next文を使用するとコードがシンプルになり、手作業でコードを打ち込む際の作業ミスが減少します。また、コード全体の可読性が上がるのでメンテナンスの効率もアップします。ループ処理を取り入れてよりすっきりとしたコードを記述するようにしましょう。