第12講 For文以外の様々なループ文
第1話 ループ文の種類

VBAには、For文以外に様々なループ文=繰り返し処理が用意されています。
それは、While文、Do While...Loop文、Do...Loop While文、
Do Until...Loop文、Do...Loop Until文の5つです。
それぞれ、
While 条件式
    ・
    ・
    ・
Wend

Do While 条件式
    ・
    ・
    ・
Loop

Do
    ・
    ・
    ・
Loop While 条件式

Do Until 条件式
    ・
    ・
    ・
Loop

Do 
    ・
    ・
    ・
Loop Until 条件式
の形で使います。

While文、Do While...Loop文、Do...Loop While文は、
条件式を満たしている間繰り返し処理が行われます。
Do Until...Loop文、Do...Loop Until文では、
条件式を満たすまで繰り返し処理が行われます。
While文、Do While...Loop文、Do...Loop While文では、
条件式が真のとき繰り返し処理が行われ、
Do Until...Loop文、Do...Loop Until文では、
条件式が偽の間繰り返し処理が行われます。
例を挙げておくと、
While i <= 10
    ・
    ・
    ・
Wend

Do Until i > 10
    ・
    ・
    ・
Loop
まったく同じ処理をすることになります。
While文の方は、iが10以下の間繰り返されます。
Do Until...Loop文では、
iが10になるまで繰り返されます。


そして、While文、Do While...Loop文、Do Until...Loop文においては、
条件式の判断が前に行われるのに対して、
Do...Loop While文、Do...Loop Until文は条件式の判断が後に行われます。

つまり、While(間)、Until(まで)と判断の前後の違いがあります。

While文、Do While...Loop文、Do...Loop While文、
Do Until...Loop文、Do...Loop Until文について、
重要な注意があります。
うっかり、
Dim w As Integer, i As Integer
w = 0
i = 1
While i <= 10
  w = w + i
Wend
としてしまうと、永久ループになってしまします。
ただし、VBAの場合途中で、整数型の限界を超えるので、オーバーフローしましたとエラー表示されますが。
例えば、
w = 0
i = 0
While i <= 10
  w = w + i
Wend
なら、まさに永久ループします。
i = 0ですから、永遠に条件式i <= 10は満たされます。
したがって、While文、Do While...Loop文、Do...Loop While文、Do Until...Loop文、
Do...Loop Until文についての重要な注意とは、
常に永久ループになる可能性があるので、
十分気をつけなければならないということです。
この例の場合、永久ループにならないようにするためには、
w = 0
i = 0
While i <= 10
  w = w + i
  i = i + 1
Wend
とすれば、処理はiが10を超えた段階で終了となります。
つまり、処理を終わらすためのi = i + 1条件式などが不可欠だということです。

では、いつものように演習に入りましょう。
次のようなシートを作り、While文によって実現してください。
02
これは、1からB5に入力されている値までの和を求めるマクロです。




第11講第8話へ 第2話へ
004

eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
vc++講義へ
excel 2013 2010 2007 vba入門へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
専門用語なしの C言語 C++ 入門(Visual C++ 2010で学ぶ C言語 C++ 入門)
専門用語なしの excel vba マクロ 入門 2013 2010 2007 対応講義 第1部
eclipse java 入門へ
excel 2016 vba 入門へ
小学生からエンジニアまでのRuby入門へ
本サイトトップへ