データが入力されている最後の行まで繰り返し処理をしてみよう
Excelの表をVBAで処理するとき、データの件数が毎回同じとは限りません。
そんなときは、データが入力されている最後の行を基準にして、For文の繰り返し処理を行う方法が便利です。
これなら、データの件数が増減しても、入力されているデータの最後まで自動で処理できます。
練習用ファイルを準備したので、一緒にやってみましょう!
ダウンロードしたファイルは、通常のExcel形式(.xlsx)になっています。
そのままマクロを書いて保存すると、せっかく書いたコードがすべて消えてしまいます!
💡練習用ファイルを使う前の準備
- ファイルをダウンロードして開く
- マクロ有効ブック(.xlsm)形式で保存し直す
最終行まで処理を繰り返す
練習用ファイルA列に入力されているデータの最終行を取得し、2行目から最終行まで順番に処理します。
今回は、C列とD列の数値を掛け算し、計算結果をE列に入力してみましょう。
動作確認用に【音・テロップなし】の動画を準備しました。
コードを1行ずつ実行しながら、セルが順番に処理されていく様子を確認してみましょう。
最終行まで処理を繰り返すコード
Sub ForLastRowSample()
Dim LastRow As Long
Dim i As Long
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To LastRow
Cells(i, 5) = Cells(i, 3) * Cells(i, 4)
Next i
End Subコードの解説
「For i = 2 To LastRow」で、2行目から取得した最終行まで、For文で繰り返し処理を行います。
データの件数が増減しても、そのときの最終行まで自動で処理できるのがポイントです。
「Cells(i, 5) = Cells(i, 3) * Cells(i, 4)」で、C列とD列の数値を掛け算し、その結果をE列に入力します。
For文が1回繰り返されるたびに「i」の値が1ずつ増えるため、2行目、3行目、4行目……と順番に処理されます。
まとめ
Excelのデータ件数が毎回変わる場合でも、A列に入力されているデータの最終行を取得し、その行をFor文の繰り返し処理の終点に設定することで、データが増減しても自動で処理できます。
今回は、最終行を取得して2行目から最終行まで繰り返し処理を行い、C列とD列の数値を掛け算してE列に入力する方法を紹介しました。
For文を使った繰り返し処理では、あらかじめ処理する行数を決めるだけでなく、データの最終行を基準にして処理することもできます。実際の業務でもよく使う方法なので、ぜひ活用してみてください。




