VBAで繰り返し処理を行う方法は複数あります。

ここでは、以下について説明します。



While 文

While文は、指定した条件が成り立っている(True)間、繰り返し処理を行います。

条件式が成り立っていない場合は繰り返し処理を行いません。

書式を以下に示します。

While 条件式

  実行する処理

Next

以下は While文 の例です

変数 xが5未満の場合に繰り返し処理を行います。

  Option Explicit

Sub While文の例()

  Dim x As Integer
  
  x = 3
  
  While x < 5
      x = x + 1
  Wend
    
End Sub


Do While 文

Do While文は、While文と同じで条件式が成り立っている間繰り返し処理を行います。

条件式が成り立っていない場合は繰り返し処理を行いません。

While文との違いは、後述するExit Doで繰り返しを中断できることにあります。

書式を以下に示します。

Do While 条件式

  繰り返し処理

Loop

以下は、変数 xが5未満の場合に繰り返し処理を行います。

    Option Explicit

Sub DoWhile文の例()

  Dim x As Integer
  
  x = 3
  
  Do While x < 5
      x = x + 1
  Loop
    
End Sub
  


Do Until 文

Do Until文は、指定された条件が満たされるようになるまで繰り返し処理を行います。

条件式が満たされると繰り返し処理を終了します。

書式を以下に示します。

Do Until 条件式

  繰り返し処理

Loop

以下は、Do Until文で変数xが5より大きくなるまでの間、繰り返し処理を行います。

    Option Explicit
  
Sub DoUntilLoop文の例()

  Dim x As Integer
  
  x = 3
  
  Do Until x > 5
      x = x + 1
  Loop

End Sub
  


Exit Do

Do While文 や Do Until文は、Exit Doを使用すると、繰り返しを中断することができます。

以下は、変数xが3の時に、繰り返し処理を中断します。

Option Explicit

Sub ExitDoの例()

  Dim x As Integer
  
  x = 1
  
  Do While x < 5
      x = x + 1
      
      If x = 3 Then
          Exit Do
      End If
  Loop

End Sub