★Do...Loop ステートメント その2
 

次に
2.この処理を行って、条件を満たしている間は続けなさい。
の場合の記述では

Sub doloop2()

 ' i は整数型として変数宣言します。


 Dim i As Integer

 ’i の初期設定として1を代入しておきます。
 i = 1


 Do
 ’「男」と入力されているセルはセルの色を赤に変更します。
 Cells(i, 1).Interior.ColorIndex = 3

 ’次々とセルを下に移動させる為に1回処理を行う度に
 ’変数 i に1を足していきます。これで行数は1ずつ増えますね。

 i = i + 1

 ’A列のセルで「男」と入力されている間、上の処理を行います。

 Loop While Cells(i, 1) = "男"

End Sub



なんと1.の結果と何も変わらなかったではないですか?
そうですね。同じ結果になりましたね。
では次は、セルの男も女も全部消した状態で2つの違いを試して見ましょう。
では、この状態から2つのコードを実行してみましょうね。
1.Do Whileの場合 2.Loop Whileの場合
変化なし セルA1が赤に

どうですか。分かりました。
1.Do Whileはまず処理条件を満たしているか確認してから処理を行いますので、変化なしです。
2.Loop Whileは処理を行ってから、条件の確認をしますので、1回目の処理をしてしまうのです。
  だからこの場合は1回目の処理が実行されてセルA1は赤くなっていまいます。

こんな現象が発生するので、プログラミングの時は気をつけましょうね。
では次はどうでしょう?

[トップ][前へ][ステートメント][次へ]