本記事では『Do Loop』ステートメントについて解説していきます。
「Do Loop」はループ処理を行うときに用いるステートメントです。
「For~Next」と同様にループ処理で、このステートメントよりも使用頻度は低いです。
ですが、処理内容によってはDo Loopのほうが適している場合があるので、ぜひ覚えておきましょう。
はじめに:「For~Next」ステートメントとの違いとは?
Do Loopを使う際に「For使えばよくね?」という疑問が出てきます。
なので、それぞれの特徴をおさえておくとよいでしょう。
『For~Next』はあらかじめカウンター変数の数値により反復を制御します。
つまり、「〇〇(数値)から△△(数値)まで繰り返したい」というときに使うわけです。
それに対して、『Do~Loop』は条件によって反復を行うことができます。
つまり、「〇〇(数値)未満まで繰り返したい」などの場合に使うわけです。
そして、具体的な2つの書き方は下のような感じになっています。
Do While i <= 10 (iが10以下の場合は処理を繰り返す)
For i to 10 (iから10まで処理を繰り返す)
上の例の場合、どっちも得られる結果は同じですが記述の仕方が変わる。
Do Loopの記述方法
次にDo Loopの記述の仕方について解説します。
記述の仕方は「ループの前」「ループの後」の2つの書き方があります。
また、注意点もあるので必ず覚えておきましょう。
条件をループ”前”に設定
「Do Loop」の記述の仕方は下の通りです。
Do [{ While | Until } condition ]
[statements]
Loop
基本的には「Do」の後に「While」か「Until」を使って条件を設定します。
・While:conditionが”True”の場合、処理statementsを繰り返す。
・Unitil:conditionが”False”の場合、処理statementsを繰り返す。
逆の判定になったら、「Loop」キーワードの後の処理に移る。
正直、どちらを使っても同じことができるので、コード的に見やすくなるように2つを使い分けると良いでしょう。
条件をループ”後”に設定
ちなみに、ループの後に条件判断することもできます。
Do
[statements]
Loop [{ While | Until } condition ]
このループ後に条件設定をする場合は”必ず1度は処理statementsが実行される”ということを覚えておきましょう。
【注意】”無限ループ”に気を付ける
無限ループとは
Do Loopは使用する際には”必ずループが終了するようにコードを組む必要”があります。
そして、条件を満たさずに永久に処理を繰り返すことを”無限ループ”と言います。
実はDo Loopは下のように「While」「Until」キーワードと条件式conditionを省略することも可能です。
しかし、この場合は処理を終わらせる条件がないので無限ループになってしまいます。
Do
[statements]
Loop
もしも、条件を設けずに実行してしまった場合は”素早くキーボードの「Esc」キーを押す”、処理停止ができない場合は”エクセルのアプリケーションのタスクを終了させる”しかありません。
条件を設定しないときとは?
Do Loopで条件を設けない場合は、ループ内でループを抜ける条件を設ける必要があります。
ほとんどの場合は、ループ内に「If~Then~Elseステートメント」を設け、特定の条件でExitステートメントを用いてループを抜けるようにします。
Do Loopの使用例
下は条件を「iが10未満のとき」にループして「A1~A9のセルに変数カウント値(i)を入れていく」という処理を行うコードになります。
1 2 3 4 5 6 7 8 |
Sub Sample() Dim i As Long i = 1 Do While i < 10 Cells(i, 1).Value = i i = i + 1 Loop End Sub |
上の処理結果はFor文でもIfを使って条件を設けることで得ることができます。
だから、Do Loopの活躍場面が少ないといえます。
でも、この場合はDo Loopを使ったほうがスマートに書けますよね。
1位 | 2位 | 3位 |
---|---|---|
Excel VBA 脱初心者のための集中講座 | パーフェクトExcel VBA | ExcelVBA 実戦のための技術 |
初心者~中級者 | 中級者 | 初心者~中級者 |
【初心者が手に取るべき参考書】 ・「書籍+動画」で圧倒的に理解しやすい入門書になっている。 ・丁寧で詳しい解説でボリューム感がある。 | 【より深い理解をしたい方にお勧めな参考書】 ・テーマに対して丁寧な解説・適度な深さで解説されている。 ・幅広くテーマを扱っていることから、基礎知識をあらかた網羅できる。 | 【入門書と一緒に買うべき参考書】 ・1つ1つのテーマを経験豊富なエンジニア視点で解説してくれている。 ・実践的で効果的なコードの書き方が理解できる。 |
【読んでみた一言】 正直、入門書はコレ一冊でいいかも。あとは中級者用の参考書に進むべし。 | 【読んでみた一言】 深く書かれているが、少々専門的に書かれていることから、読む前に数冊の入門書を読破したほうが良い。 | 【読んでみた一言】 基礎知識を持っている人が次のレベルに達するきっかけを与えてくれる参考書である。 |
スポンサーリンク