Excel VBAのFor文:繰り返し処理による効率的なデータ操作

Excel VBAのFor文とは、特定のコードブロックを指定回数繰り返し実行するための制御構造です。このループ構文を使用することで、連続したセルの操作や一連の計算を効率的に行うことができます。基本的な形式は以下の通りです。

数値の範囲をループする

このマクロを実行すると、1から10までの数値がImmediateウィンドウに出力されます。

Sub LoopThroughNumbers()
    Dim i As Integer
    For i = 1 To 10
        Debug.Print i  ' Immediateウィンドウに1から10を出力
    Next i
End Sub

Immediateウインドウとは、VBE(Visual Basic Editor、VBエディター)VBCの開発ようエディターのウインドウを指しています。

セル範囲をループする

このマクロを実行すると、セル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
タイトルとURLをコピーしました