VBSのFor文のサンプルです。処理を繰り返すループ処理で使用します。
目次
For文 | For文とは / For文のサンプル / For文で配列の値を取得 / Step(増減値) |
Exit For | ループを抜ける(Exit For) |
(continue) | ループで処理をスキップする |
For Each文 | For Each文(ループで加算を使用しないfor文) |
For文とは
For 変数 = 開始値 To 終了値 (Step 増値) 実行される処理 Next |
- 処理を繰り返す時に使用します。最初にforを書くのでfor文と呼ばれます。
- 変数が開始値から終了値の範囲内の間、繰り返します。
- 「Step 増値」を省略した場合は、増値=1になります。
For文のサンプル
For a = 1 To 5
WScript.Echo(a)'1 2 3 4 5が出力される
Next
For a = 5 To 1 Step -1
WScript.Echo(a)'5 4 3 2 1が出力される
Next
1行目は、1から5までの処理を繰り返します。
5行目は、step -1を指定することで降順になります。
For文で配列の値を取得
Dim color
color = Array("赤", "黄", "青") '配列
For a = 0 To UBound(color)
WScript.Echo(color(a)) '赤 黄 青が出力される
Next
2行目は、配列です。
4行目のUBoundは、配列の添字の最大値を返します。この場合は2を返します。
5行目は、変数と添字で配列の値を表示しています。
Step(増減値)
Stepで増減値を指定できます。
For a = 1 To 10 Step 2
WScript.Echo(a) '1 3 5 7 9が出力される
Next
For a = 10 To 1 Step -2
WScript.Echo(a) '10 8 6 4 2が出力される
Next
1行目は、Step 2なのでループ変数の値が2つずつ増加します。
5行目は、Step-2なのでループ変数の値が2つずつ減少します。
ループを抜ける(Exit For)
For a = 1 To 5
If (a = 3) Then
Exit For
End If
WScript.Echo(a) '1 2が出力される
Next
3行目は、Exit Forを使用してループ処理から抜けています。
ループで処理をスキップする
vbsには他言語にあるcontinueがありません。
そのためdo-loop文を使って同じような動きをさせます。
For a = 1 To 5
Do
If a = 3 Then Exit Do
WScript.Echo(a) '1 2 4 5が出力される
Loop While False
Next
2,5行目は、do-loop文で1回のみ処理します。
3行目は、if文の条件が一致した時do-loop文を抜けます。
For Each文(ループで加算を使用しないfor文)
For Each 変数 In コレクションや配列 実行される処理 Next |
- 処理を繰り返したいときに使用します。
- コレクションの数や配列の値の数分処理を繰り返します。
Dim color
color = Array("赤", "黄", "青") '配列
For Each a In color
WScript.Echo(a) '赤 黄 青が出力される
Next
2行目は、配列です。
4行目は、For Each文で配列の値の数分処理を繰り返します。
関連の記事