【While使用】無限ループにならない繰り返し処理の書き方

はじめに

前回の記事では、無限ループになってしまったということを書いた。

Excel VBAの学習を進めている。

この記事では、無限ループにならない繰り返し処理の書き方について書いていく。

参考書などで紹介されているのは、こちらのやり方だろう。

わざわざ、「無限ループはこうやって発生させますよ〜」と解説している人は、そうそういないはずだ。

この記事で使用するサンプルファイル

こちらのサイトからダウンロードしたサンプルファイルを使用する。

C列からH列に、従業員別の売上が記載されている。L列からQ列には、売上管理表がある。

無限ループにならない繰り返し処理の書き方はこちら

これで、無限ループを防ぐことができる。

実行結果はこちら。

順番に解説

以下の順番で処理が行われている。

  1. 変数iの定義
  2. 繰り返し処理

変数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より小さいとき」という条件に当てはまらなくなってしまうため、処理が行われない。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です