CoCoのYDブログ

心に思い浮かんだことを少し掘り下げ発信します

【VBA】Do~Loopを使用したループ

こんにちは

今回はDo~Loopを使用したループを紹介します。

 

Do~Loopを使用したプログラム

今回はスクロールバーを使用しました。若干見やすい?

Sub test()
    Do
        MsgBox ""
    Loop
End Sub

 Do~Loop間の処理を無限に繰り返します。

とめる場合は[Ctrl]+[Fn]+[Pause]もしくは[Esc]、[Ctrl]+[Break]キーを押して処理を止めましょう。終了で処理を止める事ができます。

f:id:takataka2743:20180830223833j:plain

 

ループから抜け出す方法

ループを使う上で必ず必要なことですよね。

Exit Doを使う方法やWhileを使う方法などがあります。

Exit Doを使用する

下のはA列の上からMsgBoxで表示していき、空欄が出たらループを抜け出すプログラムです。基本的にIf関数と組み合わせて使用します。

Sub test1()
    Dim i As Long
    Dim A As Variant
    Set A = Range("A:A")
    i = 1
    Do
        MsgBox A(i, 1)
        i = i + 1
        If A(i, 1) = "" Then
            Exit Do
        End If
    Loop
End Sub

 

Whileを使用する

これは上と同じ動作のプログラムをWhileで作成した場合です。

このWhileはDoの隣かLoopの隣に入れることができます。

Whileは~の間という意味なので、条件に一致している場合はループを行っています。

If関数とは異なり、ループの開始かループ内の処理が終わった後にループの抜け出しのチェックが入るところが特徴です。

Sub test2()
    Dim i As Long
    Dim A As Variant
    Set A = Range("A:A")
    i = 1
    Do While A(i, 1) <> ""
        MsgBox A(i, 1)
        i = i + 1
    Loop
End Sub

 

今日はこの辺で失礼します~