While Wend文を使った繰り返し処理

VBA を使った繰り返し処理の一つである While Wend 文の使い方です。 While Wend 文では条件式が True の間、繰り返し処理を行います。 Do Loop 文とほぼ同じことを行います。ここでは Excel VBA で While Wend 文を使った繰り返し処理を行う方法について解説します。

(Last modified: )

While Wendの使い方

While ... Wend を使った繰り返し処理の記述方法です。書式は次の通りです。

While 条件式
    条件式がTrueのときに行う処理
Wend

最初に While のあとに記述された条件式を評価します。条件式が True の場合、条件式から Wend の間の処理を一度実行します。そのあとで再び条件式を評価し、 True だった場合は再度条件式から Wend の間の処理を実行します。これを条件式を評価したときに False になるまで繰り返します。

注意しなければいけないのは、条件式が True のままだと無限に繰り返し処理を実行してしまうので、条件式から Wend の間で実行される処理の中で、条件式が変化するような処理を行う必要があるという点です。

サンプルコード

それでは簡単なサンプルを作成して試してみます。

Option Explicit

Sub テスト()
    Dim num As Integer
    num = 2

    While num < 1000
        Debug.Print ("数値 = " & num)
        num = num * 2
    Wend
End Sub

今回のサンプルでは初期値の 2 に対して 2 を繰り返し乗算していき、演算結果が 1000 を超えたら繰り返し処理を終了します。

それではプログラムを実行してみます。

While Wendの使い方(1)

イミディエイトウィンドウには次のように表示されました。演算結果が 1000 を超える直前までの値が出力されています。

While Wendの使い方(2)

While Wend文とDo Loop文の違い

While Wend 文と Do Loop 文に基本的な使い方の違いはありません。どちらを使っても同じ結果となります。

While 条件式
    条件式がTrueのときに行う処理
Wend
Do While 条件式
    条件式がTrueのときに行う処理
Loop

違いがあるとすれば Do Loop 文には繰り返し処理を途中で終了するための Exie 文が利用できますが、 While Wend には該当するものがありません。また Do Loop 文には Do While...Loop だけでなく Do...Loop WhileDo Until...Loop など目的に応じて色々な書式がありますが While Wend には用意されていないです。

Exit 文の使い方については「Exit文を使って繰り返し処理を途中で終了する」を参照されてください。

While Wend が用意されている理由は分かりませんでしたが、現時点では Do Loop 文を使うように統一されておくことをおすすめします。

-- --

Excel VBA で While Wend 文を使った繰り返し処理を行う方法について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。