データを逆順でループする方法を解説します。
For Nextステートメントの引数Stepに-1を指定します。
基本構文
For カウンタ変数 = 最終値 To 初期値 Step -1 ' ここにループしたい処理 Next
サンプルコード
Dim ws処理シート As Worksheet Set ws処理シート = ThisWorkbook.Worksheets("○○") Dim 最終行 As Long 最終行 = ws処理シート.Cells(ws処理シート.Rows.Count, 1).End(xlUp).Row ' 最終行から第1行へ逆順にループ Dim R As Long For R = 最終行 To 2 Step -1 ' 処理例:C列=A列×B列 ws処理シート.Cells(R, 3) = ws処理シート.Cells(R, 1) * ws処理シート.Cells(R, 2) Next
解説
データを逆順でループしたい場合は、
For Nextステートメントの引数Stepに-1を指定します。
StepはNext到達時のカウンタ変数増分を変更する仕組みですが、
ここには負の値も指定でき、その際は変数が順に減るループになります。
よってStepを-1にすることで1行ずつ逆順にループをかけることが可能です。
注意点として、最終値と初期値を逆にするのを忘れないようにしましょう。
負の値を指定した際は「Toで指定した値を下回ったら停止」になるため、
一度もFor文内に入ることなくForステートメントを通過します。
※ 無限ループでもない点に留意してください。