●確認テスト3

【問題文】

セル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回入力することを繰り返します。