本記事ではfor Next文を使用したループ間隔の指定と逆順での処理を実行する方法について解説を行います。
通常for Next文は決まった処理を特定回数繰り返すループ処理に使用され、次の様に開始値から終了値まで変数を1ずつ増加させながら処理を行います。
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/excel-vba-for-next-loop-interval-reverse-order-02.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-02-02.png)
ループ処理はVBAで結構使用しますよね。
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-01-04.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-01-04.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-01-04.png)
実はこのfor Next文はあるオプションが省略された形で、それを使うとループ間隔の指定や逆順での処理が実行出来るようになります。
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-01-04.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-01-04.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-01-04.png)
早速次の項目から詳しく確認してみましょう!
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-02-02.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-02-02.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-02-02.png)
よろしくお願いします!
for Next文のループ間隔の指定や逆順での処理を理解し、より応用的な使い方ができるようになる。
![](https://yuyu-techlife.com/wp-content/plugins/pochipp/assets/img/pochipp-logo-t1.png)
![](https://yuyu-techlife.com/wp-content/plugins/pochipp/assets/img/pochipp-logo-t1.png)
for Next文でループ間隔の指定や逆順での処理を行う方法
先にこの記事の結論について述べます。
for Next文では変数の増減を指定できるオプション「step」を利用する事でループ間隔の指定や逆順での実行を行う事ができる。
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/excel-vba-for-next-loop-interval-reverse-order-03.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/excel-vba-for-next-loop-interval-reverse-order-03.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-01-04.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-01-04.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-01-04.png)
オプションは省略されていると増減値は1になり変数を1ずつ増加しながらループ処理を行います。
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-02-02.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-02-02.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-02-02.png)
だから1ずつ変数が増えていくんですね!
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-01-04.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-01-04.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-01-04.png)
次から実例を交えてそれぞれの使い方を解説していきますね!
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-02-02.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-02-02.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-02-02.png)
了解です!
for Next文の間隔を指定したループ処理
for Next文はstepの値を変更する事で変数の増加量を変えることができます。
これによって処理のループ間隔を自由に指定でき、より詳細な条件を指定した間隔でのループ処理を行うことができます。
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/excel-vba-for-next-loop-interval-reverse-order-03.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/excel-vba-for-next-loop-interval-reverse-order-03.png)
- 開始値<終了値
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-01-04.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-01-04.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-01-04.png)
例えば次の様に増減値を2としてセルヘ値を入力するマクロを書くと、偶数行の時のみ処理を実行する事ができます。
Sub sample1()
Dim i As Integer '変数iを宣言
For i = 2 To 10 Step 2 '変数iを2から10まで2ずつ増やしながらループ処理
Cells(i, 1).Value = i
Next i '変数iに2を加算
End Sub
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/excel-vba-for-next-loop-interval-reverse-order-00.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/excel-vba-for-next-loop-interval-reverse-order-00.png)
for Next文で逆順で行うループ処理
for Next文では次の様に各値を設定する事でループ処理を逆順で実行する事ができます。
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/excel-vba-for-next-loop-interval-reverse-order-04.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/excel-vba-for-next-loop-interval-reverse-order-04.png)
- 開始値>終了値
- stepの値をマイナスに指定
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-01-04.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-01-04.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-01-04.png)
処理が逆順なので開始値が終了値より高い状態で始まって段々小さくなっていくイメージで考えると良いですね。
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-01-04.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-01-04.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/icon-01-04.png)
次のマクロを例として見ると逆順で下から上に向かって処理を実施していくのが分かります。
Sub sample2()
Dim i, j As Integer '変数i,jを宣言
i = 0 '変数iを初期化
For j = 10 To 2 Step -2 '変数jを10から2まで2ずつ減らしながらループ処理
i = i + 1
Cells(j, 3).Value = i
Next j '変数iに-2を加算
End Sub
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/excel-vba-for-next-loop-interval-reverse-order-01.png)
![](https://yuyu-techlife.com/wp-content/uploads/2024/08/excel-vba-for-next-loop-interval-reverse-order-01.png)
終わりに
以上で解説は終了です。
今回はfor Next文の応用としてループ間隔の指定・逆順で処理を実行する方法について解説を行いました。
間隔の指定や逆順でのループ処理を覚える事で、より詳細な処理を行える様になるのでぜひ試してみましょう!
この他本ブログではExcelに関して知っていると便利な操作や機能について随時情報発信していきます。
Excelで効率良く作業を行いたい時や処理で困った時はぜひ参考にしてみて下さい!