こんにちは、ユーキです。
今回は、For文以外の繰り返し処理を紹介します。
For文の書き方については【Excel VBA】For文いろいろ で書き方をまとめていますので、そちらを参照ください。
【Excel VBA】For文いろいろ
こんにちは、ユーキです。 今回は、VBAのFor文のいろいろな書き方を紹介します。 VBAの繰り返し処理はDo~Loop、Whileなどありますが、今回はFor文の紹介になります。 …
目次
Do~Loop
Do While 条件 処理 Loop
条件を満たす(Trueになっている)間だけ、実行されます。For文とあまり差はありません。
処理を途中で抜けるには、「Exit Do」を使います。
Dim i As Integer
i = 1
'条件を満たす間だけ、実行される
Do While i < 5
Debug.Print i
i = i + 1
If i > 3 Then
’ループを抜ける
Exit Do
End If
Loop
Do 処理 Loop While 条件
While 条件文がLoopの後ろにつくパターンです。このループの特徴は、最低1回は処理が行われるということです。ループを途中で抜ける場合、「Exit Do」を使うのは先ほどと同様です。
Dim i As Integer
i = 10
'条件を満たす間だけ、実行される
Do
Debug.Print i
i = i + 1
If i > 3 Then
’ループを抜ける
Exit Do
End If
Loop While i < 5
Do Until 条件 処理 Loop
While部分をUntilにする書き方もあります。条件判定の考え方が逆になり、「条件に到達したら」処理終了となります。
Dim i As Integer
i = 1
'条件に到達したら処理を抜ける
Do Until i >= 5
Debug.Print i
i = i + 1
If i > 3 Then
'ループを抜ける
Exit Do
End If
Loop
Do 処理 Loop Until 条件
条件判定をループの最後にくる書き方も、Untilは指定できます。こちらも先ほどと同様、最低1回は処理が実行されます。
Dim i As Integer
i = 10
'条件に到達したら処理を抜ける
Do
Debug.Print i
i = i + 1
If i > 3 Then
'ループを抜ける
Exit Do
End If
Loop Until i >= 5
While~Wend
「Do While 条件 処理 Loop」と同じです。条件を満たす間だけ、繰り返し処理を行います。
「Do While 条件 処理 Loop」と異なるのは、処理を途中で抜けることができない点です。もし、処理を中断したい場合は、Goto文を使うしかありません。
Dim i As Integer
i = 1
While i < 5
Debug.Print i
i = i + 1
Wend
まとめ
今回は、For文以外の繰り返し処理を紹介しました。
Point
- ループの種類は、Do ~ Loop 4種類 + While~Wendの計5種類ある
- Do 処理 Loop While/Until 条件 はどんな条件でも最低1回は動く
- While~Wendは、処理中断できない
少しでもお役に立てば、幸いです。