自動化においての花形といえば繰り返し文です。
単調な作業も機会にやらせればあっという間。
大変便利です。
この記事では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