【While使用】無限ループにならない繰り返し処理の書き方
はじめに
前回の記事では、無限ループになってしまったということを書いた。
Excel VBAの学習を進めている。
この記事では、無限ループにならない繰り返し処理の書き方について書いていく。
参考書などで紹介されているのは、こちらのやり方だろう。
わざわざ、「無限ループはこうやって発生させますよ〜」と解説している人は、そうそういないはずだ。
この記事で使用するサンプルファイル
こちらのサイトからダウンロードしたサンプルファイルを使用する。
C列からH列に、従業員別の売上が記載されている。L列からQ列には、売上管理表がある。
無限ループにならない繰り返し処理の書き方はこちら
これで、無限ループを防ぐことができる。
実行結果はこちら。
順番に解説
以下の順番で処理が行われている。
- 変数iの定義
- 繰り返し処理
変数iの定義
「Dim i As Integer」で、整数型のiを定義している。
Dimについては、Microsoftの公式サイトを参照していただきたい。
そして、iに1を代入している。
これは、iという箱に1が入ったということ。
繰り返し処理①
一番大きな括りから見ていこう。
Do While i < 6 から始まり、Loopで終わっている。
i < 6が条件だ。
「6より小さいとき」という条件である。
その条件が成り立つ間、「Cells(i + 7, 12).Value = 20」と「i = i + 1」という処理が繰り返し行われる。
繰り返し処理②
Cellsは、Cells(行, 列)でセルを指定することができる。
今回、行が「i + 7」で列が12だ。
Valueは、こちらのサイトによると省略してもいいみたいだ。
代入するときに、Valueを使用すると思ってもらえればいい。
繰り返し処理③
最初は、iが1なので、8行目・12列目に20が入る。そして、iに1が足されて、iが2になる。
2回目は、iが2なので、9行目・12列目に20が入る。そして、iに1が足されて、iが3になる。
3回目、4回目と繰り返していき、5回目で処理が終了する。
6回目の時は、i = 6なので、「6より小さいとき」という条件に当てはまらなくなってしまうため、処理が行われない。
コメントを残す