★Do...Loop ステートメント その1
 

◎ 指定した条件を満たしているかどうかを判断しながら、同じ処理を繰り返します。
「For...Next」と違って回数の指定はしませんよ。
ただし間違った条件を指定してしまうと、無限に処理を繰り返してワナにはまりますよ。

「Do...Loop」には
1.条件を満たしている間は、この処理を続けなさい。      ・・・条件が先で処理が後
2.この処理を行って、条件を満たしている間は続けなさい。  ・・・条件が後で処理が先
3.条件を満たすまで、この処理を続けなさい。           ・・・条件が先で処理が後
4.この処理を行って、条件を満たすまでは続けなさい。     ・・・条件が後で処理が先

の4つの使い方がありますよ。順番に解説しますので、使い分け出来るように頑張りましょう。
それから強制的にDo...Loopから抜ける時は、Exit Doを使いますよ。
 1.条件を満たしている間は、この処理を続けなさい。

 Do While 条件式
    処理
 Loop

 2.この処理を行って、条件を満たしている間は続けなさい。

 Do
    処理
 Loop While 条件式


以上2つともWhileを使うのですが、前に使うのと後に使うのでは、微妙に違いが出てきますので、そこを押えて使い分けをしましょう。
例題
  「セルA1から連続した同じ内容がどこまで続いているか、続いているところまでの色を赤く変  えなさい。」
という内容にしています。
Whileの位置の違う2つのコード記述でどう変化が生じるか確認して下さいね。
 → 

こうなればOKです。
まず
1.条件を満たしている間は、この処理を続けなさい。
の場合の記述では

Sub doloop1()

 ' i は整数型として変数宣言します。


 Dim i As Integer

 ’i の初期設定として1を代入しておきます。
 i = 1

 ’A列のセルで「男」と入力されている間、以下の処理を行います。
 Do While Cells(i, 1) = "男"

 ’「男」と入力されているセルはセルの色を赤に変更します。
 Cells(i, 1).Interior.ColorIndex = 3

 ’次々とセルを下に移動させる為に1回処理を行う度に
 ’変数 i に1を足していきます。これで行数は1ずつ増えますね。

 i = i + 1

 Loop

End Sub



うまく動きましたか?では次は。。。

[トップ][前へ][ステートメント][次へ]