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次元データの処理には欠かせないテクニックです。
構造を意識し、変数名とインデントを工夫しながら、わかりやすいコードを心がけましょう。
コメント