VBA While文のサンプル(Excel/Access)

VBAのWhile文のサンプルです。条件で処理の繰り返しを制御します。Excel、Accessとも同じです。

目次

サンプル While文とは / While文のサンプル
  ループを途中で終了する
  ループで処理をスキップする
比較演算子 比較演算子

While文とは

While 条件
       実行される処理
Wend
  • 条件がtrueの間、処理を繰り返します。
  • 条件がfalseの場合、処理を終了します。
  • 最初の判定がfalseの場合、処理は1回も実行されません。
  • 処理に条件をfalseにするロジックがないと無限ループになるので注意が必要です。

 

While文のサンプル

Sub sample()
  Dim a As Integer
  a = 0
  
  While a < 5
    Debug.Print a '0 1 2 3 4
    a = a + 1
  Wend
End Sub

5行目は、値が5より小さい間、処理を繰り返します。
7行目は、条件になる値を加算しています。

 

ループを途中で終了する

Sub sample()
  Dim a As Integer
  a = 0
  
  While a < 5
    If (a = 3) Then
        GoTo point1
    End If
    Debug.Print a '0 1 2
    a = a + 1
  Wend
point1:
End Sub

while文では、Exitが使用できません。
そのため、7行目のようにGoToとラベルを指定します。
12行目はラベルです。

 

ループで処理をスキップする

Sub sample()
  Dim a As Integer
  a = 0
  
  While a < 5
point1:
    If (a = 3) Then
        a = a + 1
        GoTo point1
    End If
    Debug.Print a '0,1,2,4が出力される
    a = a + 1
  Wend
End Sub

6行目はラベルです。
VBAでは、Continueが使用できません。
そのため、9行目のようにGoToとラベルを指定します。
このサンプルでは8行目の加算がないと無限ループになるので注意して下さい。

 

比較演算子

比較演算子は、2つの値を比べて真偽値(true/false)を返します。
条件を満たしていればtrue,そうでない場合はfalseです。

等しくないとする場合は、<>とします。

比較演算子 説明
a = b aとbの値は等しい
a <> b aとbの値は等しくない
a > b aはbより大きい
a >= b aはbより大きい または 等しい
a < b aはbより小さい
a <= b aはbより小さい または 等しい

関連の記事

VBA Do Loop文の使い方(処理を繰り返す)
VBA For Each文のサンプル(Excel/Access)

△上に戻る