【ExcelVBA入門】Do Loopで繰り返し・ループ処理ができる!

自動化においての花形といえば繰り返し文です。
単調な作業も機会にやらせればあっという間。
大変便利です。

この記事ではDo Loopステートメントを利用したループ処理について説明します。

目次

基本的に無限にループする

Do Loopというのは基本的には無限にループします。
例えば

Do
 Range("A1") = 1
Loop

このように記述すると、永遠にA1に1を入れ続けます。
パソコンはフリーズします…..(ESC連打したら抜けられるかも)

そしてこの無限ループからのフリーズは結構おきます笑
私もよくやります。

停止条件を付けよう

当然ですが無限にループされたら困ります。
停止条件を付ける必要があります。
3パターンあります。

Whileを使う

Do While 条件

 条件の間繰り返す

Loop(ここにWhileをいれてもいい)

実際に書いてみると

Sub test()
    Dim i as long


    Do While i < 10 'iが10より小さい間は繰り返すという意味
        i = i + 1
        MsgBox i & "回目です"
    Loop

End Sub

↑のようにiが10になるまで繰り返すという、停止条件をつけてループ処理ができます。

Untilを使う

Do Until 条件

 条件の間繰り返す

Loop

Untilはその名前通り、条件を満たすまで繰り返します。
Whileそんなに変わらないです。

Sub test()
    Dim i as long


    Do Until i > 10 'iが10より大きくなるまでは繰り返すという意味
        i = i + 1
        MsgBox i & "回目です"
    Loop

End Sub

Exitを使う

Exit Doと入れるだけ

Exit Doと書くと即ループから抜けられます。
Ifなどの条件式と組み合わせることで、ループを終わらることができるのです。

Sub test()
    Dim i as long


    Do
        If i = 10 Then
           Exit Do
        End If
        i = i + 1
        MsgBox i & "回目です"
    Loop

End Sub

iが10になったらループから抜け出せます。
こっちの方が汎用性があって使いやすいです。
※ただしミスると無限ループに陥りやすいです。

まとめ

いかかでしたでしょうか。
繰り返しを覚えるとできることがぐっと広がります。
個人的にはDoLoopはあまり使い道がないと思っているのですが、何か便利な使い方があれば教えてください!

コメント

コメント一覧 (1件)

  • Pretty nice post. I just stumbled upon your blog annd wanted to say that I’ve really loved surfing
    around your blog posts. After all I’ll bbe subscribing to your rss ffeed and I am hoping you write again very soon!

    Feel free to visit myy web page; Selene

コメントする

目次