決められた処理を繰り返し実行することを「繰り返し処理」と呼び、「繰り返し処理」は、決められた回数または決められた条件を満たすまで何度も繰り返し実行します。
For~Nextステートメント
決められた回数だけ処理を繰り返したいときにこのステートメントを使用します。コーディング方法を紹介します。
'【基本のFor~Next処理】
’実行すると1回目・2回目・3回目とメッセージが表示されます。
Sub ForNext_1()
Dim i As Long
For i = 1 To 3
MsgBox i & "回目"
Next
End Sub
'【Stepを使用したFor~Next処理】
’実行すると1回目・3回目とメッセージが表示されます。
Sub ForNext_2()
Dim i As Long
For i = 1 To 3 Step 2
MsgBox i & "回目"
Next
End Sub
'【ネスト(入れ子)を使用したFor~Next処理】
’実行すると1-1回目・1-2回目・2-2回目・2-2回目とメッセージが表示されます。
'ネストする場合はNextの後に変数を指定します。
Sub ForNext_3()
Dim i As Long
Dim j As Long
For i = 1 To 2
For j = 1 To 2
MsgBox i & "-" & j & "回目"
Next j
Next i
End Sub
Do~Loopステートメント
ある条件を満たしている間または条件を満たすまで繰り返し処理を実行します。下記コーディングは異なった記述をしておりますが、すべて同じ処理内容で1回目・2回目・3回目とメッセージを表示します。
◇下記2つのキーワードで条件を指定します。
・while:条件を満たしている間は処理を繰り返す。
・until:条件を満たすまで処理を繰り返す。
◇実行前・実行後判断がありwhile・untilキーワードの記載方法が異なります。
・実行前判断:最初から条件を満たしている場合は一度も処理が行われない。
Doの後にキーワードを指定します。
・実行後判断:最初から条件を満たしていない場合でも一度は処理が行われる。
Loopの後にキーワードを指定します。
'【Do~Loop処理】Whileキーワードで繰り返し処理を終了します。
'Doの後にキーワードを記載しています。
Sub Do_Loop_2()
Dim i As Long
i = 1
Do While i <= 3
MsgBox i & "回目"
i = i + 1
Loop
End Sub
'【Do~Loop処理】Whileキーワードで繰り返し処理を終了します。
'Loopの後にキーワードを記載しています。
Sub Do_Loop_2()
Dim i As Long
i = 1
Do
MsgBox i & "回目"
i = i + 1
Loop While i <= 3
End Sub
'【Do~Loop処理】Untilキーワードで繰り返し処理を終了します。
'Doの後にキーワードを記載しています。
Sub Do_Loop_3()
Dim i As Long
i = 1
Do Until i > 3
MsgBox i & "回目"
i = i + 1
Loop
End Sub
'【Do~Loop処理】Untilキーワードで繰り返し処理を終了します。
'Loopの後にUntilキーワードを記載しています。
Sub Do_Loop_4()
Dim i As Long
i = 1
Do
MsgBox i & "回目"
i = i + 1
Loop Until i > 3
End Sub
For Each~Nextステートメント
このステートメントは配列やオブジェクトのコレクションの各要素に対して繰り返し処理を行います。
'【For~Each処理】
'処理を実行すると配列の要素0・配列の要素1・配列の要素2・配列の要素3が表示されます。
Sub ForEach()
Dim MyNumber(3) As String
Dim MyValue As Variant
Dim i As Integer
For i = 0 To 3
MyNumber(i) = "配列の要素" & i
Next
For Each MyValue In MyNumber
MsgBox MyValue
Next
End Sub
コメント