繰り返し処理【Access/Excel】

ステートメント【Access_Excel】 04.ステートメント
ステートメント【Access_Excel】

決められた処理を繰り返し実行することを「繰り返し処理」と呼び、「繰り返し処理」は、決められた回数または決められた条件を満たすまで何度も繰り返し実行します。

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

次はその他のステートメント【Access/Excel】です。

コメント

タイトルとURLをコピーしました