VBS 基礎-5 ループ式
Do While ~ Loop
Dim counter, val counter = 0 val = 20 Do While val > 10 val = val - 1 counter = counter + 1 Loop MsgBox( "Counter is " & counter )do while 条件 ~ loop は条件が正の間、処理を繰り返します。上記ではvalの価が10以下になるまでループを繰り返します。 この do while ~ loop ですが書き方は二通りあります。
以下のコードを参照してください。
Dim counter, val counter = 0 val = 5 Do While val > 10 val = val - 1 counter = counter + 1 Loop MsgBox( "Counter is " & counter )
Dim counter, val counter = 0 val = 5 Do val = val - 1 counter = counter + 1 Loop While val > 10 MsgBox( "Counter is " & counter )前者は counter は 0ですが、後者ではcounterは1となります。 do while 条件 処理 loop の書き方では条件が判定された後に処理が行われるので、最初から条件が負であれば処理は行われません。 一方の do 処理 loop while 条件 という書き方では処理が行われた後に条件が判定されるので、最低でも1回は処理が行われます。 上記を十分理解して使い分けてください。
for to next
Dim i, total
total = 0
for i = 0 to 10
total = total + i
next
MsgBox("counter" & total )
上記、for 開始 to 条件 処理 next は指定数までループを行うといった場合に利用します。
ループが開始する際に for ~ to が実行されます。
ここでは変数 i に0が挿入されています。
次に to 条件 に開始時に初期化された変数が至るまで ~ next までのループが繰り返されます。
通常のループでは初期化された変数に一回ループされる毎に 1 づつ値が増加されていきます。
もし、一回のループで +2 づつ値を増やしたいのであれば
Dim i, total
total = 0
for i = 0 to 10 step 2
total = total + i
next
MsgBox("counter" & total )
to 条件 step 増減数 とします。上記であれば一回のループで i には 2 づつ値が増加してゆくことになります。
stepには 負の値も設定できますので
Dim i, total
total = 0
for i = 10 to 0 step -1
total = total + i
next
MsgBox("counter" & total )
とすることも可能です。
for each in next
Dim ar(2) ar(0) = "A" ar(1) = "B" ar(2) = "C" for each i in ar MsgBox( " is " & i ) nextPHPでいうところの foreach() に相当します。 for each 変数 in 配列やオブジェクト 処理 next という形式になっていて、 in直後の配列(又はオブジェクト)の内容を逐一取得し、それを each 直後の変数に格納してループを行います。 配列(又はオブジェクト)の内容を全て取得し終わったら next 以降に処理を抜けるようになっています。
2008年 10月 7日ドキュメント作成
2008年 10月 9日ドキュメント更新