制御 実行を繰り返すフロー制御ステートメントWhile~Wend

※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。

※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。

While...Wend ステートメント

指定した条件が真 (True) である間、一連のステートメントの実行を繰り返すフロー制御ステートメントです。

  • 構文

  • While condition
  • [statements]
  • Wend
  • While...Wend ステートメントの構文は、次の指定項目から構成されます。
  • 指定項目 内容

  • condition
  • 必ず指定します。
  • 真 (True) または偽 (False) を評価する数式あるいは文字列式を指定します。
  • 引数 condition の値が Null 値 の場合、引数 condition は偽 (False) であるとみなされます。
  • statements
  • 省略可能です。
  • 引数 condition が真 (True) の間に実行する 1 つまたは複数のステートメントを指定します。
  • 解説

  • 引数 condition が真 (True) の場合、Wend ステートメントまでのすべての引数 statements が実行されます。
  • 実行が Wend ステートメントに達すると、制御は再び While ステートメントに戻り、引数 condition が調べられます。
  • 引数 condition が真 (True) の場合は、このプロセスが繰り返されます。
  • 偽 (False) の場合は、Wend ステートメントの次のステートメントに制御が移ります。
  • While...Wend ループは任意のレベルでネスト (入れ子) 構造にすることができます。
  • Wend ステートメントは最後に実行された While ステートメントに対応します。
  • ヒント

  • Do...Loop ステートメントを使うと、より構造化された柔軟なループを記述することができます。

While...Wend ステートメントの使用例

次の例は、While...Wend ステートメントを使って、カウンタ変数 (i) の値を増加させます。ループ内に記述されたステートメントは、条件の評価が真 (True) の間、実行されます。
Option Explicit


Private Sub test()
'************************************************
'あるコレクションの中の特定要素数になれば抜ける
'************************************************

Dim MyCollection As Variant
Dim i As Long
MyCollection = Array(10, 20, 30, 40, 50, 30)
'初期化
i = 0
While i < 3 '値を評価します。
Debug.Print i & ":" & MyCollection(i)
i = i + 1 '値を増やします。
Wend 'While ループを終了します。
'0:10
'1:20
'2:30
End Sub

 

2000年01月01日|[VBサンプルコード]:[制御]