ExcelのVBAのWhile文のサンプルです。条件で処理の繰り返しを制御します。
目次
While文 | While文 |
ループを途中で終了する | |
ループで処理をスキップする | |
比較演算子 | 比較演算子 |
While文
While 条件 実行される処理 Wend |
- 条件がtrueの間、処理を繰り返します。
- 最初の条件の判定でfalseの場合、ループは1回も実行されません。
- 処理に、条件をfalseにするロジックがないと無限ループになるので注意が必要です。
- 以下は、MicrosoftのVBAのWhile文のリンクです。
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/whilewend-statement
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より小さい または 等しい |
以下は、Microsoftの比較演算子 (Visual Basic)のリンクです。
https://docs.microsoft.com/ja-jp/dotnet/visual-basic/language-reference/operators/comparison-operators
関連の記事