Categories: VBA基礎

EXCEL VBA Do Loop While ・Exit Doの使い方(ループ)

Do Loop Whileの使い方

 

●はじめに
EXCEL VBAプログラムを作成する上で、ルーチン処理(繰り返し)は、頻繁に利用します。For Next と 同じ、条件に合わせて繰り返すなど、VBAプログラムを作成する際には、必要不可欠になります。Do Loop Whileの場合は、前判定・後判定どちらでもループ処理しますので、状況により使い分けて下さい。それでは、Do Loop Whileの利用方法を説明いたします。

 

Do Loop Whileの使い方(後判定)

 

  Do 
   '実行処理
  Loop While (条件式)

 

Do Loop Whileの使い方(前判定)

 

  Do While (条件式)
   '実行処理
  Loop

 

●プルグラム説明( 下記に、Do Loop Whileの使い方を説明します)
サンプル(Do Loop While) 変数”I”に対して1~10まで繰り返し、1~10までの値を加算するサンプルプログラムです。

 

Do Loop Whileの使い方(後判定)

Sub Do_Loop_While() 

    I = 1               '初期値 I = 1
    G = 0               '合計値 G = 0
        Do
           G = G + I    'Iの値をG(合計値)に加算する。
           I = I + 1    'Iの値に+1を加算する。※この式を入れないと繰り返し条件が終了しない。
        Loop While I <= 10   'Iが10以上になるまで繰り返す。※(繰り返し条件)
        
    MsgBox G

End Sub

 

Do Loop Whileの使い方(前判定)

 

Sub Do_While_Loop()

    I = 1               '初期値 I = 1
    G = 0               '合計値 G = 0
        Do While I <= 10   'Iが10以上になるまで繰り返す。※(繰り返し条件)
           G = G + I    'Iの値をG(合計値)に加算する。
           I = I + 1    'Iの値に+1を加算する。※この式を入れないと繰り返し条件が終了しない。
        Loop
        
    MsgBox G

End Sub

 

Exit Do の使い方

 

●Exit Doの説明
続きまして、Exit Doの説明をします。上記項目でDo While Loopの説明をしましたが、「Exit Do」は、Do While Loop実行中に、ある特定な条件などを設定し、Loop処理の繰り返し途中からLoop外に出る事ができます。For~Nextの「Exit For」と同じ使い方になります。

 

●プログラム説明
それでは、サンプルプログラムの説明をいたします。サンプルプログラムでは、100回ループさせる中で、乱数を0~99まで発生し、乱数が80以上の値が出たら、メッセージを表示させLoop処理から抜け出しプログラムを終了させます。

 

Sub ExitDo()
    Dim I, L As Integer
    
    L = 1  '初期設定 1回目を設定
    
    Do While L <= 100   'Iが100以上になるまで繰り返す。※(繰り返し条件)
    
        I = Int(Rnd * 100) 'ランダムの数値を生成(0~99)
    
        If I >= 80 Then
                    MsgBox L & "回目で80以上のランダムの数字" & I & "が出ました"
                    Exit Do    'Do Loop から抜け出す
        End If
    
    L = L + 1 '回数をカウントする(+1加算)
    
    Loop
End sub

 

●実行結果(上記のプログラムを実行して、ランダムの数値0~99を生成し80以上の数値が出ればループから抜け出しメッセージを表示します。
(クリックで拡大表示)

 

最後まで、ご覧いただきまして誠に有難うございました。
Do Loop While・Exit Doの説明でした。上記のサンプルプログラム等を参照して使い方を理解して下さい。
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。
AKIRA