For~Nextステートメント

同じ処理を繰り返すときに使うのがFor~Nextステートメントです。

以下の例は2~11行目の売上の合計を求めます。

Dim i As Long
Dim Lng_uriage As Long

For i = 2 To 11

  Lng_uriage = Lng_uriage + Cells(i, “B”).Value

Next i

MsgBox “売上の合計は” & Lng_uriage & “円です”

For~Nextステートメントでは変数を使用します。この場合 i が最初は2となり2行目、次に3となり3行目 と11行目まで繰り返します。
売上合計用の変数Lng_uriage に2~11行目の売上を代入しています。

Next i の 変数名 i は省略する事ができます。しかし省略せず 変数名を付ける事をお勧めします。
実務のプログラムでは、For~Nextステートメントの中にFor~NextステートメントIfステートメントなど多くのステートメントが混在します。
For i = 2 To 11の終わりのNextを探すとき変数名があると便利だからです。

For i = 2 To 11 には正確には省略されている部分があります。
For i = 2 To 11 Step 1 が省略されています。
i が 2→3→4・・11 と1つずつ増加させています。
Step 2 とした場合は2つずつ増加させ 2→4→6 となります。
Stepを省略した場合は Step 1 となります。

上の例では上から下に行を追加させていますが、下から上に売上用変数に代入する場合は次のようになります。

Dim i As Long
Dim Lng_uriage As Long

For i = 11 To 2 Step -1

  Lng_uriage = Lng_uriage + Cells(i, “B”).Value

Next i

MsgBox “売上の合計は” & Lng_uriage & “円です”

 データの一覧があり上に古い日付のデータ、下に新しい日付のデータあり新しいデータを取得する場合などでします。
省略部分 Step 1 を正式に記述する必要はありませんが、Stepを使うことで変数の増減をコントロールできる事を理解して下さい。