|
▼ToShiYo さん:
こんばんは。
>たとえば
>
>Do While ActiveCell <> ""・・・Loop
>と
>Do・・・Loop While activeCell<>""
>の違いについて
>
>ループの初めで条件判断させることは理解できますが
>ループの後で条件判定させなければならないようなケースは
>どのようなことなのでしょうか。
>そのような具体的な例はあるのでしょうか?
>Do・・・Loop While activeCell<>""
は、最低でも一回は、Do〜Loopの中のコードを実行する場合に使うと便利です。
>Do While ActiveCell <> ""・・・Loop
は、条件によっては、一度もDo〜Loopの中のコードを実行することがない可能性が
あるコードです。
例1
1〜100までの整数を乱数を使用して無作為に数字を取得して、
目標値が取得できるまで、A1から順に取得したデータを書き込みます。
目標値をセルAnに書き込んだら、処理は終了です。
目標値が100だとすると、A列に
2
3
50
30
35
100
のように表示します。
標準モジュールに
'===========================================================
Sub test1()
Const 目標値 As Long = 100
Dim rw As Long
Dim myval As Long
Columns(1).ClearContents
Randomize Now()
rw = 1
Do
myval = Int(Rnd() * 目標値) + 1
Cells(rw, 1).Value = myval
rw = rw + 1
Loop While myval <> 目標値
End Sub
これを
Do While 〜・・・Loopの形でコード化すると、
'========================================================
Sub test1()
Const 目標値 As Long = 100
Dim rw As Long
Dim myval As Long
Columns(1).ClearContents
Randomize Now()
rw = 1
myval = Int(Rnd() * 目標値) + 1
Do While myval <> 目標値
Cells(rw, 1).Value = myval
rw = rw + 1
myval = Int(Rnd() * 目標値) + 1
Loop
Cells(rw, 1).Value = myval
End Sub
と、どちらでも大抵のことは出来ます。
どっちがすっきりしているかですが・・・。
|
|