Excel VBAでFor文を使用する基本的な例

目次

数値の範囲をループする セル範囲をループする ネストされたFor文 Stepキーワードを使用する Exit Forを使用する For Eachを使用してオブジェクトをループする

VBA

EXCEL VBAについて 基本構文について 変数と演算子について セル操作について シート操作について ブック操作について If文について Case文について 業務効率VBA10例 トップへ戻る

数値の範囲をループする

このマクロを実行すると、1から10までの数値がImmediateウィンドウに出力されます。
Sub LoopThroughNumbers()
    Dim i As Integer
    For i = 1 To 10
        Debug.Print i  ' Immediateウィンドウに1から10を出力
    Next i
End Sub
                

セル範囲をループする

このマクロを実行すると、セルA1からA10の値がImmediateウィンドウに出力されます。
Sub LoopThroughRange()
    Dim cell As Range
    For Each cell In Range("A1:A10")
        Debug.Print cell.Value  ' Immediateウィンドウにセルの値を出力
    Next cell
End Sub
                

ネストされたFor文

このマクロを実行すると、セルA1からE5までに、行番号と列番号の積が入力されます。
Sub NestedLoopThroughRange()
    Dim i As Integer, j As Integer
    For i = 1 To 5
        For j = 1 To 5
            Cells(i, j).Value = i * j  ' セルにi*jの結果を入力
        Next j
    Next i
End Sub
                

Stepキーワードを使用する

このマクロを実行すると、1から10までの奇数がImmediateウィンドウに出力されます。
Sub LoopWithStep()
    Dim i As Integer
    For i = 1 To 10 Step 2
        Debug.Print i  ' Immediateウィンドウに1, 3, 5, 7, 9を出力
    Next i
End Sub
                

Exit Forを使用する

このマクロを実行すると、1から4までの数値がImmediateウィンドウに出力され、iが5になった時点でループが終了します。
Sub ExitForLoop()
    Dim i As Integer
    For i = 1 To 10
        If i = 5 Then
            Exit For  ' iが5になったらループを終了
        End If
        Debug.Print i  ' Immediateウィンドウに1, 2, 3, 4を出力
    Next i
End Sub
                

For Eachを使用してオブジェクトをループする

このマクロを実行すると、アクティブシートの使用範囲内のすべてのセルのアドレスと値がImmediateウィンドウに出力されます。
Sub LoopThroughAllCells()
    Dim cell As Range
    For Each cell In ActiveSheet.UsedRange
        Debug.Print cell.Address, cell.Value  ' Immediateウィンドウにセルのアドレスと値を出力
    Next cell
End Sub