【問題文】
セルA1~D5に「hoge」と入力しなさい。
【解答例1】
Sub TestForNext3_1()
Dim i As Long
Dim j As Long
'j列目の1~5行が対象
For i = 1 To 5
'i行目の1~4列が対象
For j = 1 To 4
Cells(i, j) = "hoge"
Next j
Next i
End Sub
【解答例2】
Sub TestForNext3_2()
Dim i As Long
Dim j As Long
'j行目の1~4行が対象
For i = 1 To 4
'i列目の1~5行が対象
For j = 1 To 5
Cells(j, i) = "hoge"
Next j
Next i
End Sub
【解説】
A1~D4と縦横の両方で処理を行う場合は解答例のようにFor文の中にFor文を処理させる必要があります。【解答例1】と【解答例2】は実行完了後は同じになりますが、プロセスが異なります。
【解答例1】は「『横に4回入力する処理』を縦にも5回処理させる」という考え方です。A1~D1に「hoge」を入力して、次にA2~D2に入力、次にA3~D3、A4~D4、最後にA5~D5に入力します。
つまり、縦4セルに5回入力することを繰り返します。
【解答例2】は「『縦に5回入力する処理』を横にも4回処理させる」という考え方です。A1~A5に「hoge」を入力して、次にB1~B5に入力、次にC1~C5、最後にD1~D5に入力します。
つまり、横5セルに4回入力することを繰り返します。