VBS基礎編-サイクル(for、Do、While)


よくコードを作成する時、コードの一部を何回か実行したいです。コードの中で循環文を使ってこの仕事を完成できます。
ループは、条件が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