Chapter2-5 ループ処理

ある同様の処理を何度か繰り返して実行する場合、いくつも同じ命令を書くのではなく、ループ処理を利用します。


For〜Nextステートメント

  • あらかじめ繰り返す回数が分かっている場合に使う

  • ForとNextで囲まれた1行あるいは複数行の処理を指定回数分繰り返す
For カウンタ用変数= 初期値 To 終了値
  〜〜〜〜〜〜
  〜〜〜〜〜〜
  〜〜〜〜〜〜
Next カウンタ用変数


For〜Nextステートメントでは、ループ処理に入ると、まずカウンタ用変数に初期値が設定されます。ループが1回実行されるごとに、その値は+1されます。そして、その値が終了値を超えた時点でループが終了します。

■For〜Nextステートメントの使用例
Dim iintLoop As Integer

For iintLoop = 1 To 10
  Debug.Print iintLoop
Next iintLoop



■ループの強制終了
ループを途中で強制的に抜けたいときは、「Exit For」ステートメントを実行します。
Dim iintLoop As Integer

For iintLoop = 1 To 10
  Debug.Print iintLoop
  Exit For
Next iintLoop


■ループのネスト
複数のループをネスト(入れ子構造)することもできます。



Do〜Loopステートメント

  • 繰り返す回数が不定(あらかじめ分からない)の場合に使う

  • 指定した条件式が真(True)になるまで、または条件式が真(True)である間、DoとLoopで囲まれた処理を繰り返す


  • 指定した条件式が真になるまで繰り返す構文
    Do Until 条件式   〜〜〜〜〜〜
      〜〜〜〜〜〜
    Loop


  • 指定した条件式が真である間繰り返す構文
    Do While 条件式
      〜〜〜〜〜〜
      〜〜〜〜〜〜
    Loop



■Do〜Loopステートメントの使用例
Dim iintLoop As Integer

iintLoop = 1
Do Until iintLoop > 10
  Debug.Print iintLoop
  iintLoop = iintLoop + 1
Loop

iintLoop = 1
Do While iintLoop <= 10
  Debug.Print iintLoop
  iintLoop = iintLoop + 1
Loop


条件式の評価を各ループの後に行なうこともできます。その場合、条件の真偽に関わらず、最低1回はDoとLoopで囲まれた部分の処理が実行されます。
Dim iintLoop As Integer

iintLoop = 1
Do
  Debug.Print iintLoop
  iintLoop = iintLoop + 1
Loop Until iintLoop > 0


■Do〜Loopステートメントの補足
  • ループを途中で強制的に抜けたいときは「Exit Do」ステートメントを使う
  • 複数のループをネスト(入れ子構造)することもできる
  • 条件式には比較演算子や論理演算子を使える
| Index | Prev | Next |

 

Copyright © T'sWare All rights reserved