VBAでネストされたFor Nextループを使う(ループの中にループ)

VBAでは、あるループの中に別のループを入れる、ネスト(入れ子)構造を使うことができます。特に2重のFor Nextループは、表形式のデータ処理や繰り返しパターンの処理でよく使われます。

この記事では、ネストされたFor Nextループの基本構文や使い方、注意点について解説します。


1. 基本構文

Dim i As Integer
Dim j As Integer

For i = 1 To 3
    For j = 1 To 2
        Debug.Print "i=" & i & ", j=" & j
    Next j
Next i

出力結果:

i=1, j=1
i=1, j=2
i=2, j=1
i=2, j=2
i=3, j=1
i=3, j=2

外側のループ(i)が1回動くたびに、内側のループ(j)がすべて回る構造になっています。


2. 使用例:表形式の処理

2次元のデータ(行と列)を処理したいときに便利です。

Dim row As Integer
Dim col As Integer

For row = 1 To 3
    For col = 1 To 3
        Cells(row, col).Value = row * col '掛け算の表を作成
    Next col
Next row

このコードは、3×3の掛け算の表をセルに出力します。


3. 注意点

内側の変数を外側と混同しない

変数名を間違えると意図しない動作になることがあります。

インデントを揃える

コードの可読性がとても重要です。ネストが深くなるほど、見やすく整えることが大切です。

ネストが深すぎないように

2~3重程度までが推奨です。それ以上深くなると、コードが複雑になりやすいため、処理の分割や関数化を検討しましょう。


4. まとめ

ネストされたFor Nextループを使えば、複雑な繰り返し処理もシンプルに書くことができます。特に、表や2次元データの処理には欠かせないテクニックです。

構造を意識し、変数名とインデントを工夫しながら、わかりやすいコードを心がけましょう。

コメント

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