「Visual Basic for Applications/言語仕様」の版間の差分

ifとDo LoopとFor
(ifとDo LoopとFor)
cccc
</syntaxhighlight>
== 構文 ==
=== If...Then...ElseIf...Else...End If文 ===
Ifの後に0個以上のElseif、その後に最大1個のElse節が出現することができる<ref>https://docs.microsoft.com/ja-jp/office/vba/language/concepts/getting-started/using-ifthenelse-statements</ref>。
<syntaxhighlight lang="vb">
If x = 1 Then
REM ここにxが1と等しい時の処理
Elseif y = 1 Then
REM ここにxが1と等しくなく、yが1と等しい時の処理
Else
REM どちらでもない時の処理
End If
</syntaxhighlight>
 
=== 繰り返し構文 ===
Do...Loopは条件式を使用した繰り返しを行う。以下の種類がサポートされている<ref>https://docs.microsoft.com/ja-jp/office/vba/language/concepts/getting-started/using-doloop-statements</ref>。以下の例で、{{code|cond}}はループの条件式である。
<syntaxhighlight lang="vb">
'ループに入る前にcondが評価される
Do While cond
'condがTrueの間繰り返される処理
Loop
 
'ループに入る前にcondが評価される
Do Until cond
'condがFalseの間繰り返される処理
Loop
 
'ループに入って、1回目の実行が終わった後に評価される
Do
'condがTrueの間繰り返される処理
Loop While cond
 
'ループに入って、1回目の実行が終わった後に評価される
Do
'condがFalseの間繰り返される処理
Loop Until cond
</syntaxhighlight>
Do...Loopから抜けるためにはExit Doを使用する。
 
また、For...Nextは開始値、終了値、増分を指定してループを行う<ref>https://docs.microsoft.com/ja-jp/office/vba/language/concepts/getting-started/using-fornext-statements</ref>。以下の例で、iはループ変数である。
<syntaxhighlight lang="vb">
' i = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
For i = 0 To 10
' iを使った処理...
Next i
</syntaxhighlight>
 
<syntaxhighlight lang="vb">
' i = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
For i = 0 To 10 Step 1
' iを使った処理...
Next i
</syntaxhighlight>
 
<syntaxhighlight lang="vb">
' i = 0, 2, 4, 6, 8, 10
For i = 0 To 10 Step 2
' iを使った処理...
Next i
</syntaxhighlight>
 
<syntaxhighlight lang="vb">
' i = 10, 8, 6, 4, 2, 0
For i = 10 To 0 Step -2
' iを使った処理...
Next i
</syntaxhighlight>
 
注釈:
* For...Nextを抜ける際にはExit Forを使う。
* Next iはNextと同じ意味である。
* 開始値、終了値、増分を小数にした場合は誤差で意図した回数にならないことがある。
 
For Each...Nextは、''反復可能''なオブジェクトを反復することに使われる。ユーザーが作成したクラスを''反復可能''にするためには[https://docs.microsoft.com/ja-jp/office/vba/language/concepts/getting-started/using-for-eachnext-statements Microsoftのドキュメント]を参照。
 
=== 演算子 ===
{{節スタブ}}
== 出典 ==
{{reflist}}
733

回編集