EXCEL VBA For Next Stepの使い方

 

For Next Stepの使い方

 

 ●はじめに
EXCEL VBAプログラムを作成する上で、ForNextなどのルーチン処理(繰り返し)は、頻繁に利用します。条件に合わせて繰り返しするなど、VBAプログラム作成する際には、大変重要になります。他のルーチン処理と違いStepを組み合わせる事により、指定した値の変化を設定する事ができます。それでは、For Next Stepの利用方法を説明いたします。

 

 ●書式の説明「For Next Stepの使い方」
For I = 初期値 To 終了値 Step 増加数(+)/(-)

 

 ●プログラム説明 ※For Next Step (繰り返しカウントを増やす +1

変数”I”に対して1~100までを1ずつ繰り返す。

 

 ●プログラム説明  ※For Next Step (繰り返しカウントを減らす -1

変数”I”に対して100~1へ1ずつ減らしながら繰り返す。

 

 ●プログラム説明 ※For Next Step (繰り返しカウントを増やす +5

変数”I”に対して1~100までを5ずつ繰り返す。 Iの値は、【1,6,11,16,21,26・・・・96】と変化します。

 

 ●プログラム説明  ※For Next Step (繰り返しカウントを増やす減らす -10

変数”I”に対して100~1へ1ずつ減らしながら繰り返す。Iの値は、【100,90,80・・・・20,10】と変化します。

 

 ●プログラム説明 ※For Next Step (繰り返しカウントを増やす +5
次のサンプルプログラムは、実際に1~100までの間でFor Next Stepを実行しますが、その増える過程をセルに転記していきたいと思います。

 

 

 ●実行結果
実行後、A列に転記された内容見ると、1、5,11,16・・・91、96と変化しています。実際に終了は、100では無く96で終わります。To 100の意味は100以下の最大値で終わる事を覚えて下さい。今後、プログラムを作成する上で重要な事になります。

 

 ●実行前 ※A列には何もありません。(クリックして拡大)

 

 ●実行後 ※For Next Step(+5)で実行していますので、その結果がA列に記載されています。A列の値の変化を確認して下さい。(クリックして拡大)

 

 

Exit For の使い方 (For Next) 

 

 ●書式の説明 Exit For の使い方 (For Next) 

続きまして、Exit Forの使い方を説明いたします。Exit Forは、For Next でループ処理実行中に、ループ条件が成立しなくでも、ループから出すことができるのが、「Exit For」になります。

 

 ●プログラム説明 (Exit Forの使い方:サンプル)
次のサンプルプログラムは、Exit Forの使い方を表したサンプルプログラムになります。プログラムの説明ですが、InputBoxで1~10までの数値を入力します。For Nextで”I”を1~10までループします。その間に、ループ回数×入力した数値の掛け算を行います。結果が30を超えた場合は、ループ(For Next )から抜けて、MsgBoxで計算結果の最後の値を表示するプログラムです。なお、計算結果で30を超えない場合は、10回目のループした時の最後の計算結果を表示させます。

 

 

 ●実行結果
今回の入力値は、「6」で実行したため、Gokei(合計値)が6・12・18・24・30・36と変化して、Gokei(合計値)が30以上になったため、IF文の条件が成立し、ForNextから抜けて(Exit For)、その時の値を表示させた。

 

 ●入力値 ※プログラム実行直後に「1~10」までの数値「6」を入力します。(クリックして拡大)

 

 ●実行後 ※上記のプログラムを実行 入力値が「6」なので、30以上の条件が成立しExit Forした時の値が36になります。
入力値6 × 6回ループ = 36 (クリックして拡大)

 

For Next の使い方 (2重ループ) 

 

 ●For Nextの2重ループの説明
続きまして、For Nextの応用となります。For Nextを使った2重ループ処理の説明をしたいと思います。プログラムを作成する上で、ループ処理はとでも重要な処理になります。利用する機会も多く、様々な場所で利用する機会があります。
2重ループで注意をする点ですが、ループ処理は、3重・4重などそれ以上にする事は可能ですが、記述する際は下記の様にFor Next間で囲い込む記述方法でプログラムを組み立てる必要があります。内側ループ・外側ループなど分かりやすく記述し、ForとNextの位置もタブで横位置を揃えた方が見た目も分かりやすいと思います。記述方法については、下記を参照にしてください。

 

 ●For Nextの2重ループの正しい記述方法 ※For Nextが正しく囲い込み記述をしている。 (クリックして拡大)

 

 ●For Nextの2重ループの間違った記述(エラー)  ※ForNextが重なりあう記述になっている。(クリックして拡大)

 

 ●プログラム説明 (For Nextの2重ループ:サンプル)
下記のプログラムは、For Nextを使った2重ループ処理を表現するプログラムになります。EXCELに縦・横1~9までの数値を順番に掛け算を行い該当するセルに、掛け算の計算結果を代入するプログラムになります。※簡単に言いますとEXCELの表に掛け算の計算結果(九九)を表示するプログラムです。

 

 

 ●実行結果
実行後、空白のセルにForNextの2重ループを使い縦・横9×9の『九九』の表が作成されました。

 

 ●実行前 ※空白のセル(クリックして拡大)

 

 ●実行後 ※空白のセルに九九の値が表示されました。(クリックして拡大)

 

 

 

最後まで、ご覧いただきまして誠に有難うございました。
For Next Stepは、EXCEL VBAでのループ処理で初心者向きですので、早めに理解しましょう!<
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。