繰り返し処理とはなんぞやと思われるかもしれません。繰り返し処理は、前回解説させていただいた「条件分岐」と組み合わせてめちゃめちゃ頻繁に使う処理です。具体的なサンプルと合わせてご紹介させていただきたいと思います

繰り返し処理とは

繰り返し処理とは名前の通り、処理を繰り返す事です。どんな時に利用するかと言うと「セルA1~A200まで同じ計算を繰り返して欲しい!」という場合です めちゃめちゃ使いそうじゃないですか?
条件分岐と組み合わせて、「こんな場合はこう処理しながら100回処理を繰り返して」このような命令文が書けるようになるととネットで調べながら何となくプログラム書けてきます

For Next文を使った繰り返し処理

繰り返しの処理の事をループ処理とも言いますが、ループ処理をするステートメントも何種類かあります。最初に最もメジャーなFor Nextステートメントについて説明させていただきます。

For Nextステートメントは、指定回数繰り返し処理をするステートメントです。

For Nextの基本構文

For Nextの基本構文

For カウンタ変数=開始値 To 終了値[Step 増減値]
繰り返し処理の内容
Next [カウンタ変数]

  • カウンタ変数…ステートメント内で繰り返しを数える為の変数の事。通常はiとかjとか使われる事が多いです。
  • 開始値…カウンタの初期値
  • 終了値…カウンタの最後の値
  • Step 増減値(省略可):カウンタの増減値(省略すると1ずつ増加)

サンプル文

Sub test()
Dim i As Long
For i = 1 To 5
MsgBox i & ” 回目の実行です”
Next i
End Sub

例の場合、カウンタ変数は1~5まで ForとNextの間の処理を5回繰り返す事になります。
実行例としては、カウンタが開始の数~終了の数まで処理を繰り返すという内容です。

Stepを使った増減値の変更方法

基本はカウンタ変数は1ずつ増加しますが、増加数を変更することも可能です

サンプル文

Sub test2()
Dim j As Long
For j = 1 To 20 Step 2
MsgBox j & ” 回目の実行です”
Next j
End Sub

イミディエイト実行例

終了値の後に「Step 2」を追加しました
こうする事で、jは1から始まって、3,5,7…と2ずつ加算されていくようになります。
「Step -5」とマイナス表記で指定すると、カウンタ変数を初期値から減算していく事も可能です。

Exit Forでループを抜ける方法

ループ処理では、繰り返し処理の途中で終了値以前にループを抜ける事も可能です
抜ける時は「Exit Forステートメント」を使用します。

ループを抜ける際の構文

For カウンタ変数=開始値 To 終了値[Step 増減値]
 If条件 Then Exit For
 繰り返し処理の内容
Next [カウンタ変数]

構文を見てもらうと、For Nextステートメントの中にIfステートメントが入っているのが分かるかと思います。For文の中に「If 条件 Then Exit For」 を記述することで条件が一致した場合ループを抜けるという事になります。

サンプル文

セルA2から下に向かって、順番にセルの値をメッセージボックスに表示していきます。
セルが空白の時ループを抜けて何行目の実行でループを抜けたかメッセージボックスに表示させる例文です。

Sub test3()
‘空白のセルがあったらループ終了
Dim i As Long
For i = 2 To 20
If Cells(i, 1).Value = “” Then
Exit For
End If
MsgBox Cells(i, 1).Value
Next

MsgBox i & “行目でループを抜けました”
End Sub

コード

  • Sub test3()
  • ‘空白のセルがあったらループ終了
  • Dim i As Long
  • For i = 2 To 20
  • If Cells(i, 1).Value = “” Then
  • Exit For
  • End If
  • MsgBox Cells(i, 1).Value
  • Next
  • MsgBox i & “行目でループを抜けました”
  • End Sub

解説

  • testプロシージャ開始
  • コメント
  • Long整数型の「i」の宣言
  • Forステートメント開始 iが2~20の間で繰り返す
  • If開始 もしセル(i,1)の値が空欄だったら
  • Forステートメントを抜ける
  • IFステートメント終わり
  • メッセージボックスに(i,1)セルの値を表示
  • 次のiへ(つまりi+1)
  • For抜けた後の処理 メッセージボックス”i行目で~”表示
  • testプロシージャ終了

まとめ

まとめ

今回は繰り返し処理「For Next」について解説させていただきました。

For Nextステートメント…繰り返し処理の際使用(回数を指定して処理を繰返す)
基本構文
For カウンタ変数=開始値 To 終了値
繰り返し処理の内容
Next [カウンタ変数]

次回は違う繰り返し処理の方法について解説予定です 最後まで読んでいただきましてありがとうございました