Private Sub Command1_Click()
Dim iloop As Integer
Dim icount As Integer
Dim msg As String
'* 他言語との比較のため、Do..Untilの記述は使用していない。
' Ex.1:Do
' 条件(iloop <10)が真のあいだループする例
' (条件に応じて0回以上ループする)
iloop = 0
icount = 0
msg = ""
Do While iloop <10
msg = msg + Str(iloop) + ","
iloop = iloop + 1
icount = icount + 1
Loop
msg = msg + vbCrLf + Str(icount) + "回do whileループしました"
Call MsgBox(msg)
' Ex.2:Do
' 条件(iloop <10)が真のあいだループする例
' (条件に応じて1回以上ループする)
iloop = 0
icount = 0
msg = ""
Do
msg = msg + Str(iloop) + ","
iloop = iloop + 1
icount = icount + 1
Loop While iloop <10
msg = msg + vbCrLf + Str(icount) + "回do whileループしました"
Call MsgBox(msg)
' Ex.3:Do
' ループ途中からの脱出
iloop = 0
icount = 0
msg = ""
Do While iloop <10
If iloop = 5 Then
Exit Do ' ループ脱出
End If
msg = msg + Str(iloop) + ","
iloop = iloop + 1
icount = icount + 1
Loop
msg = msg + vbCrLf + Str(icount) + "回do whileループしました"
Call MsgBox(msg)
' Ex.4:Do
' カウントアップ中にループ先頭に戻る例
'
' VBはC/C++やPascalのようにループ先頭への記述はできない
' そのためロジックで対応します
iloop = 0
icount = 0
msg = ""
Do While iloop <10
If (iloop Mod 2) <> 1 Then
msg = msg + Str(iloop) + ","
icount = icount + 1
End If
iloop = iloop + 1
Loop
msg = msg + vbCrLf + Str(icount) + "回do whileループしました"
Call MsgBox(msg)
End Sub
|