【VBA】Do Loopの使い方【For文との違いまで解説】

本記事では『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ステートメントを用いてループを抜けるようにします。

【VBA】Exitステートメントの使用方法【参考コード有り】
Exitステートメントは”ループを抜けたり、プロシージャーを終了させる”ときに記述します。 そして、ループ内の任意の場所に記述できるので、柔軟な制御ができたりします。 Exitステートメントの種類 Exitステートメントには5種類...

 

Do Loopの使用例

下は条件を「iが10未満のとき」にループして「A1~A9のセルに変数カウント値(i)を入れていく」という処理を行うコードになります。

 

上の処理結果はFor文でもIfを使って条件を設けることで得ることができます。

だから、Do Loopの活躍場面が少ないといえます。

でも、この場合はDo Loopを使ったほうがスマートに書けますよね。

 

〇おすすめのVBA参考書ランキング!

1位

2位

3位

Excel VBA 脱初心者のための集中講座パーフェクトExcel VBAExcelVBA 実戦のための技術
初心者~中級者中級者初心者~中級者
【初心者が手に取るべき参考書】

・「書籍+動画」で圧倒的に理解しやすい入門書になっている。

・丁寧で詳しい解説でボリューム感がある。

【より深い理解をしたい方にお勧めな参考書】

・テーマに対して丁寧な解説・適度な深さで解説されている。

・幅広くテーマを扱っていることから、基礎知識をあらかた網羅できる。

【入門書と一緒に買うべき参考書】

・1つ1つのテーマを経験豊富なエンジニア視点で解説してくれている。

・実践的で効果的なコードの書き方が理解できる。

【読んでみた一言】
正直、入門書はコレ一冊でいいかも。あとは中級者用の参考書に進むべし。
【読んでみた一言】
深く書かれているが、少々専門的に書かれていることから、読む前に数冊の入門書を読破したほうが良い。
【読んでみた一言】
基礎知識を持っている人が次のレベルに達するきっかけを与えてくれる参考書である。

¥2,794円
amazonで確認!

¥3,608円
amazonで確認!

¥2,640円
amazonで確認!

スポンサーリンク