vba Do Loop★Do Until |
||||
| わずかな知識で VBA! |
vba Do Loop
|
|||
繰り返しのステートメント Do Loop同一処理を繰り返すことを「ループ」といいます。 ループには、指定回数だけ繰り返すものと、 ある特定の条件が整うまで繰り返すものがあります。 Do Loopステートメントは、ある特定の条件が整うまで、 または、ある特定の条件が整っている間は処理を繰り返すというものです。 つまり、2種類ありますが、 ループの前で条件判断する書き方と、ループの後で条件判断する書き方があるので、 4種類ということになるのでしょうか。 私が多用するのは、「Do Until Loop」です。 こちらは、ループする前に条件判断を行い、ある特定の条件が整うまで繰り返します。 |
わずかな知識で VBA! |
|||
「Do Until Loop」 ループ作業に入る前に、既に、条件が整っている場合もあるので、こちらが一般的だと思います。 Do Until 条件式 作業1 作業2 Loop 次の例は、参照セルが、コードと同じになるか、カウンター値が200になるまで繰り返します。 カウンター値はコードと同じものがない場合に備えた処理です。 Do Until setcell.Value = kohdo Or cntA = 200 条件式 Set setcell = setcell.offset(1, 0) 参照セルを一つ下のセルへセット cntA = cntA + 1 カウンター値を1つ増やす Loop ループ これを、ループの後で条件判断するものに変更すると Do Set setcell = setcell.offset(1, 0) 参照セルを一つ下のセルへセット cntA = cntA + 1 カウンター値を1つ増やす Loop Until setcell.Value = kohdo Or cntA = 200 条件式 となりますが、無条件に1回ループされてしまいます。 ということで、ループの前で条件判断するものを覚えておけば充分です。 |
||||
「Do While Loop」 ある特定の条件が整っている間は処理を繰り返す Do While Loop Do While 条件式 作業1 作業2 Loop Do Until Loopと同じ構文になりますが、こちらはある条件が整っている間だけループします。 この条件にはなじみませんが、上のDo Untilの例を書き換えると下記の様になります。 Do While setcell.Value <> kohdo Or cntA <> 200 条件式 Set setcell = setcell.offset(1, 0) 参照セルを一つ下のセルへセット cntA = cntA + 1 カウンター値を1つ増やす Loop へそ曲がり的な条件設定になってしまいましたが、Do Wile ・・Loopステートメントは、 何かフラグ(判定の目印)をたてて、そのフラグが変わるまでの間は繰り返す時などに使用します。 どうですか、このうちの一つを覚えておけば大丈夫です。 |
||||
わずかな知識でVBA! TOP マクロで何ができる? ユーザーインターフェース マクロの記録 マクロの登録 イベントについて マクロの編集とデバッグ ゲームで覚えるVBAプログラミング オブジェクトの操作 セルの操作 MsgBox関数・InputBox関数 変数の型 ヘルプの活用 イミディエイトウィンドウ Withステートメント Setステートメント 条件分岐のステートメント If Then Else,Select Case 繰り返しのステートメント Do Loop 繰り返しのステートメント For Next ダイアログボックスを作ってみよう1 ダイアログボックスを作ってみよう2 【実践編】 ActiveXコントロール 各コントロールのプロパティ 文字列の操作 Endプロパティ リンク・検索 相互リンク マイプロフィール YouTubeの部屋 |
||||
Copyright (C) わずかな知識でVBA! All Rights Reserved