【ExcelVBA】ループ処理 While、Do While、Do Loop While

こんなあなたにおすすめ

・Excel VBAでWhile Wendによるループ処理をしたい

・Excel VBAでDo Whileによるループ処理をしたい

・Excel VBAでDo Loop Whileによるループ処理をしたい

Excelでいろんな作業をしているときによく繰り返し処理をすることがあります。
そんなとき、手作業でやっていると面倒くさいですし、時間がかかってしまうと思います。

そこで、Excel VBAのWhile Wend、Do While、Do Loop Whileを使うことで、何十倍もの効率アップを図ることができます。

上記3つは、条件が満たされているときだけループ処理を実行し、条件が満たされなかった場合に、ループ処理を抜けることができます。
また、特定の条件でループを抜けたりすることも可能です。

手作業で繰り返し処理をやっているという方は、この機会にExcel VBAで自動化してしまいましょう。

Excel VBAでWhile Wendによるループ処理をしたい

While Wendは、条件式がTrueの場合にループ処理を実行し、条件式がFalseの場合、ループ処理を終了します。

基本構文は下記の通りです。

While 条件式
    '実行したい処理を記述
Wend
Sub test1()

    Dim i As Integer    '変数iを定義

    While i  3    'iが3未満のとき、ループ処理を継続する
        i = i + 1    'iにi+1したものを代入する
        Cells(i, 1).Value = i    'iの値をセルに入力する
    Wend

End Sub

Excel VBAでDo Whileによるループ処理をしたい

Do Whileは、While Wendと同様に条件式がTrueの場合にループ処理を実行し、条件式がFalseの場合、ループ処理を終了します。

基本構文は以下の通りです。

Do while 条件式
    '実行したい処理を記述
Loop
Sub test2()

    Dim i As Integer    '変数iを定義

    Do While i  3    'iが3未満のとき、ループ処理を継続する
        i = i + 1    'iにi+1したものを代入する
        Cells(i, 1).Value = i    'iの値をセルに入力する
    Loop

End Sub

Excel VBAでDo Loop Whileによるループ処理をしたい

Do Loop Whileは、While Wend、Do Whileと異なり、最初に条件式がFalseの場合でも1度プログラムを実行します。
これは、プログラムを実行した後に、条件式でTrueなのかFalseなのかを判断し、ループ処理を実行するかを決めているためです。

基本構文は下記の通りです。

Do
    '実行したい処理を記述
Loop While 条件式
Sub test3()

    Dim i As Integer    '変数iを定義

    'iが3未満のとき、ループ処理を継続する
    Do i = i + 1    'iにi+1したものを代入する
        Cells(i, 1).Value = i    'iの値をセルに入力する
    Loop While i  3    'iが3未満のとき、ループ処理を継続する

End Sub

ループ処理を抜けたい

ループ処理を抜けたい場合、Exit Do、GoToを使うことで、ループ処理を抜けることができます。
  ループ処理を抜けたい場合・・・Exit Do
  ループ処理で一部の条件をスルーしたい場合・・・GoTO

Exit Do

下記のコードでは、i=2の条件を満たすことで、Exit Doが実行されます。
その結果、Excelには1のみ入力され、ループ処理を抜けることができます。

Sub test4()

    Dim i As Integer    '変数iを定義

    Do While i  3    'iが3未満のとき、ループ処理を継続する
        i = i + 1    'iにi+1したものを代入する

        If i = 2 Then    'iが2のときに実行する
            Exit Do    'ループ処理を抜ける
        End If

        Cells(i, 1).Value = i    'iの値をセルに入力する
    Loop

End Sub

GoTo

GoToのラベル先をDo While Loopの先頭に指定します。
GoToの部分に到達すると以降の処理は実行されずに、Gotoのラベル部分から再び処理を実行していきます。

Sub test4()

    Dim i As Integer    '変数iを定義

    Do While i  3    'iが3未満のとき、ループ処理を継続する
L1:
        i = i + 1    'iにi+1したものを代入する

        If i = 2 Then    'iが2のときに実行する
            GoTo L1    'L1に戻る
        End If

        Cells(i, 1).Value = i    'iの値をセルに入力する
    Loop

End Sub

まとめ

ここまで、While Wend、Do While、Do Loop Whileについて解説しました。

繰り返し処理を手作業でやると非効率ですし、人がやるとミスする可能性もあります。
この機会にExcel VBAで自動化してしまいましょう。

For Nextによるループ処理の方法もあるため、下記の記事をご参照ください。
>>【ExcelVBA】For Next文 繰り返し(ループ)処理

Excelで作業効率をアップしたい方は、下記の記事もご参照ください。
>>Excelのショートカット一覧 覚えて作業効率アップ!!
>>Excelで覚えておくべき関数 作業効率アップ間違いなし

【Excelについて学びたい方】
Excel 最強の教科書[完全版]
【Excel VBAについて学びたい方】
Excel VBA 脱初心者のための集中講座
エンジニアを目指すなら、TechAcademy!
オンラインスクール受講者数No.1!

・自宅にいながらオンライン完結で勉強できる
➡スクールへの移動時間を削減するため、効率的に学習可能!

・受講生に1人ずつ現役のプロのパーソナルメンターがつく
➡分からないことがわかるまで徹底的にメンターに質問可能!

・チャットで質問すればすぐに回答が返ってくる
➡レスポンスが速いから、わからないことをその場で解決!

・オリジナルサービスやオリジナルアプリなどの開発までサポート
➡就職、転職のときに役立つポートフォリオを開発可能!

無料で体験できるので、まずはお試し
>>TechAcademyの無料体験はこちら

1 COMMENT

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です