VBS基礎編-サイクル(for、Do、While)
よくコードを作成する時、コードの一部を何回か実行したいです。コードの中で循環文を使ってこの仕事を完成できます。
ループは、条件がFalseになる前に実行文を繰り返します。条件がTrueになる前に、ステートメントを繰り返します。他のクラスは指定された回数でステートメントを繰り返します。
For...Next:サイクル数を指定し、カウンタを使って運転文を繰り返します。
Do...Loop:条件がtrueである場合、または条件がtrueである場合、サイクルを実行します。
While…Wend:条件がTrueの場合はループ
For Each...Next:集合中の各項目または配列中の各要素に対して、ステートメントのセットを繰り返し実行します。
For...Next文
循環回数を指定して、カウンタを使って運転文を繰り返します。文法構成は以下の通りです。
カウンタを循環させる数値変数です。この変数は配列要素やユーザー定義型の要素ではありません。
スターの初値。
end:counterの終値です。
Step:counterの歩幅。指定がない場合はステップのデフォルト値は1です。
具体的なコード例は以下の通りです。
For...Next
Exit For文は、カウンタがその終了値に達する前にFor...Next文を終了するために使用されます。通常は幾つかの特殊な場合(例えばエラーが発生した場合)のみループを終了するため、If...The n...Else文のTrue文ブロックにExit For文を使用することができる。Falseの条件であれば、ループは常に実行されます。
For Each...Nextはステートメントを指定の回数だけ実行するのではなく、配列内の要素またはオブジェクトの各セットについてステートメントを繰り返します。これは、集合中の要素の数を知らないときに有用である。
ループは、条件がFalseになる前に実行文を繰り返します。条件がTrueになる前に、ステートメントを繰り返します。他のクラスは指定された回数でステートメントを繰り返します。
For...Next:サイクル数を指定し、カウンタを使って運転文を繰り返します。
Do...Loop:条件がtrueである場合、または条件がtrueである場合、サイクルを実行します。
While…Wend:条件がTrueの場合はループ
For Each...Next:集合中の各項目または配列中の各要素に対して、ステートメントのセットを繰り返し実行します。
For...Next文
循環回数を指定して、カウンタを使って運転文を繰り返します。文法構成は以下の通りです。
For counter = start To end [Step step] 'counter , start:counter , end:counter , step:counter
[statements]
[Exit For] '
[statements]
Next
Dim Count:Count = 0 ' , 0
For i = 1 To 10 ' 10 ,For
Count = Count + 1
Next 'Next 1 i
MsgBox Count ' 10 '
:Exit For For...Next 。
Dim Count:Count = 0 ' , 0
For i = 1 To 10 step 2 ' 10 , 2, Step ,
Count = Count + 1
If Count = 3 Then ' Count 3 ,
Exit For '
End If
Next
MsgBox Count ' 3
循環回数を指定して、カウンタを使って運転文を繰り返します。文法構成は以下の通りです。
For counter = start To end [Step step]
[statements]
[Exit For]
[statements]
Next
主なパラメータ:カウンタを循環させる数値変数です。この変数は配列要素やユーザー定義型の要素ではありません。
スターの初値。
end:counterの終値です。
Step:counterの歩幅。指定がない場合はステップのデフォルト値は1です。
具体的なコード例は以下の通りです。
For...Next
Dim Count:Count = 0 ' , 0
For i = 1 To 10 ' 10
Count = Count + 1
Next
MsgBox Count ' 10
Stepカウンタサイクルステップを設定する
Dim Count:Count = 0 ' , 0
For i = 1 To 10 Step 2 ' 2, 5
Count = Count + 1
Next
MsgBox Count ' 5
ループを終了Exit For文は、カウンタがその終了値に達する前にFor...Next文を終了するために使用されます。通常は幾つかの特殊な場合(例えばエラーが発生した場合)のみループを終了するため、If...The n...Else文のTrue文ブロックにExit For文を使用することができる。Falseの条件であれば、ループは常に実行されます。
Dim Count:Count = 0 ' , 0
For i = 1 To 10 ' 10
Count = Count + 1
If Count = 5 Then ' Count 5 ,
Exit For
End If
Next
MsgBox Count ' 5
Doサイクルは条件がTrueになるまで循環します。
True
Dim Count:Count = 5 '
Do Until Count = 0 ' Count 0 ,
MsgBox Count
Count = Count -1
Loop
MsgBox " "
Dim Count:Count = 5 '
Do
MsgBox Count
Count = Count -1
Loop Until Count = 0 ' Count 0 ,
MsgBox " "
True
Dim Count:Count = 5 '
Do While Count <> 0 ' Count 0 ,
MsgBox Count
Count = Count -1
Loop
MsgBox " "
Dim Count:Count = 5 '
Do
MsgBox Count
Count = Count -1
Loop While Count <> 0 ' Count 0 ,
MsgBox " "
Exit Do Do...Loop
Dim Count:Count = 5 '
Do While Count <> 0 ' Count 0 ,
MsgBox Count
Count = Count -1
If Count = 2 Then ' Count 2,
Exit Do
End If
Loop
MsgBox " "
While…Wendは条件がTrueの時に循環します。
Dim Count:Count = 5 '
While Count <> 0 ' Count 0,
MsgBox Count
Count = Count -1
Wend
MsgBox " "
While…Wend Exit , , , Do…Loop
For Each...Next文For Each...Nextはステートメントを指定の回数だけ実行するのではなく、配列内の要素またはオブジェクトの各セットについてステートメントを繰り返します。これは、集合中の要素の数を知らないときに有用である。
Dim Dics '
Set Dics = CreateObject("Scripting.Dictionary") ' Dictionary
Dics.Add "0", "Athens" ' Dictionary
Dics.Add "1", "Belgrade"
Dics.Add "2", "Cairo"
For Each Dic in Dics
MsgBox Dics.Item(Dic) ' , Dictionary
Next