【VBA学習】処理を繰り返したい時便利なFOR文の使い方

  • このエントリーをはてなブックマークに追加

処理を組んでいると、同じ処理を何度も繰り返して行いたい場合が出てきます。

そんな時に使えるのがFOR文です。

今回はこのFOR文について紹介していきます。

FORの特徴と使い方

FOR文ってなに?

まず、FOR文を知る前に、繰り返し処理とはどういったときに使うものかを紹介します。

例えば下のような、あるセルからあるセルまで点数の入ったセルがあり、

このセルの横に点数に応じて「優」「良」「可」「不可」を出力させる処理を作るとします。

 

この場合、「C列のセルの点数を確認して、D列の隣のセルに結果を出力させる」という処理をAさん~Fさんまでの6回繰り返してあげると、同じ処理を何度も何度も記述しなくても済みます。

 

このような処理を繰り返したい時にFOR文を使用します。

 

FOR文の書き方

FOR文は下のように記述します。

 

変数はFOR文の繰り返し用にInteger型(数値)の物を用意しておきます。

その変数に=して繰り返しを始める値(0や1が無難です)とToの後ろに最後の値(最大値)を記述します。

そして、Stepの後ろに1回の繰り返しで増加させる値を記述します。

 

これで、変数の値が「始めの値」~「終わりの値」までの間、For~Nextの間に書かれた処理を繰り返し、「増やす値」ずつ変数の値が変化していきます

※「増やす値」が1なら変数の値が「1,2,3,4,5~」と増え、2なら「2,4,6,8~」と増えていく。

 

動きを確認してみよう

実際に処理を書いて動かしてみましょう。

下のコードは繰り返した数を表示させる処理です。

 

Forの中の処理では「LoopNo」という変数に1を足しています。

この処理を通るごとに「LoopNo」が1ずつ増えていきます。

FOR文を抜けた後に、「LoopNo」の値をメッセージで出力させます。

実際にこの処理を実行すると下のメッセージが表示されました↓

 

結果は「50」と出力され、この処理を50回行ったことが分かります。

FOR文の使い方はこんな感じです。

 

では、先ほど例で挙げた点数に応じた結果をセルに表示させる処理を考えてみましょう。

繰り返すのは人数分の計6回なので、最大値に6、繰り返す処理の中身は前回紹介したCase文を活用してあげれば、できそうです。

Case文についてはこちらを参照ください

【VBA学習】分岐パターンが多い時に便利!Select Caseの使い方

これらをもとに組んだのがこちら↓

 

FOR文の条件では、0~5までの6回の繰り返し処理としています。

なぜHensuの初期値が1からではなく0かというと、FOR文の中の処理で、Hensuをセルの行数に足して出力させる行を切り替えたかったからです。

そして、「Range(“C” & (3 + Hensu)).Value」とすることによって、C列の3行目以降を繰り返すごとに1行ずつ下に切り替えることが出来ます

例えば、Hensuに0が入れば、

「Range(“C” & (3 + 0)).Value」→「Range(“C3”).Value」

Hensuに1が入れば、

「Range(“C” & (3 + 1)).Value」→「Range(“C4”).Value」

というような感じになります。

 

実際に実行してみると下のようになりました↓

 

FOR文の中でさらにFOR文を使う

FOR文の中でさらにFOR文を入れ込んで処理を複雑に繰り返すこともできます。

例えば、下のような九九の表を作成する場合、このような方法で列と行それぞれをFOR文で繰り返させることで1まとまりの記述だけで作成することが出来ます。

 

コードはこのようになります↓

 

なにやら複雑なコードになっていますが、やっている事は単純です。

1つ目のFOR文で列数をセットしています。

2つ目のFOR文で、セットされた「列の段」と3~11行目までの「行の段」を掛けて結果を3~11行に繰り返して表示させています。

2つ目のループが全て終わると、1つ目のFOR文の繰り返しが1回分終わり、次の列に移動します。

そして、この処理を9列目まで繰り返しています。

 

また、Cells()はセルの列数と行数を指定して、セルを選択することが出来ます。

「Cells(行数,列数).Value」で指定したセルの値を扱う事が出来ます。

実際に実行してみたのがこちら↓

 

まとめ

FOR文は同じ処理を何回か行いたいときに使える文法でした。

でも、FOR文を使うには繰り返したい回数が分かっていないといけないので注意です。

次回は繰り返す回数がわからない場合に使えるWhile文を解説します。

 

■次のページ

【VBA学習】繰り返し処理に便利なWhile文の特徴と使い方

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

コメントを残す

*