Vba で do while ループを使用するにはどうすればよいですか?

VBA Do while は、条件を指定する必要があるループであり、ループを実行するにはその条件が true のままである必要があります。簡単に言うと、まず指定した条件が true かどうかをチェックし、その条件が true の場合はループを実行し、それ以外の場合は何も実行しません。

各反復で条件をテストし、その後でのみ命令を実行します。 Excel にワークシートを追加したいが、完全なワークシート数が 12 以下であると想像してください。この場合、do-while ループを使用してこのコードを作成できます。

構文

後続の各ループの VBA 構文は次のとおりです。

 Do While Condition [statements] Loop
vba-do-while-loop-condition-statement
  1. 条件:これは指定する条件であり、ループを実行するにはこの条件が true である必要があります。
  2. ステートメント: Do While ループで条件を実行するコード行が true です。
  3. Loop : これはループの反復の終了ステートメントであり、VBA に戻って条件を再度テストするように指示します。

DO While ループを理解するための例

Do While ループを理解するために、ワークシートの合計数が 12 未満の場合にワークシートをワークブックに追加するコードを作成してみましょう。追加するシートの数を VBA に指示する必要はなく、このコードを実行するたびに常に合計 12 シートが作成されます。

次の手順を使用します。

  1. まず、キーボードで「Do While」と入力する必要があります。
    type-the-keyword-do-while
  2. 次に、ワークブック内のワークシートの合計数が 12 未満かどうかを確認できる条件を記述する必要があります。
  3. これを行うには、ワークシートの合計数をカウントし、それを数値 12 と比較する以下のコードを使用する必要があります。
    condition-to-check-worksheets
  4. 次に、ワークシートを追加するコードを記述する必要があります。このコードは、指定した条件が true の場合に実行されます。
    code-to-add-worksheet
  5. 最後にキーワード「Loop」を入力してコードを完成させます。
    type-loop-to-end-the-code

先ほど書いた完全なコードは次のとおりです。

 Sub vba_do_while_loop() Do While ActiveWorkbook.Worksheets.Count < 12 Sheets.Add Loop End Sub

次に、このコードがどのように機能するかを説明します。指定した条件はワークブック内のワークシートの総数をチェックし、次にワークシートの数を 12 と比較する小なり演算子を使用します。

ワークシートの数が 12 未満の場合、ループは実行を続けて新しいワークシートを追加し続けますが、ワークシートの数が 12 に達するとループは停止します。

これは、簡単に言えば、ワークシートの数が 12 未満である限り、ループは実行され続けるということです。

do-while ループの例

ここで重要なのは、先ほど作成したコードでは、追加するワークシートの数を指定する必要はありませんが、次のループに進む場合は、追加するワークシート計算の数を指定する必要があります。

ループを作成します

Do Loop While は、Do While Loop の拡張バージョンであり、機能は同じですが、条件をテストするときにわずかな違いがあります。

In Do Loop 指定した条件をテストする前にループを 1 回繰り返し実行し、条件が true の場合はループを継続します。

パスワードをチェックしてコードを実行し、パスワードが間違っている間ループを継続するコードを作成するとします (これは例で示されています)。

構文

VBA Do Loop While の構文は次のとおりです。

vba-do-loop-while の構文
  1. Do: これは、Do While ループの開始キーワードです。
  2. ステートメント: これは、ループ内で実行するコードの行です。
  3. Loop While: これは、ループを継続し、指定した条件をテストするためのキーワードです。
  4. 条件: これは、ループが 2 回目の反復を開始してループを継続する前にテストする条件です。

Do Loop While の構文でわかるように、最初にステートメントを 1 回実行し、次に条件に移動してテストし、その条件が true の場合はループを開始し、条件が有効である間ループを継続します。真実。

DO ループを理解するための例

do while ループを理解するために、入力ボックスを表示してユーザーにパスワードの入力を求めるコードを作成してみましょう。

この入力ボックスは、ユーザーが入力したパスワードが間違っていることを 5 回まで明確に表示し続け、その後は手順を実行せずに入力ボックスが表示されなくなります。

  1. まず、パスワードと試行カウンタを保存するために必要な 2 つの変数を宣言します。
    declare-two-variables-you-need-for-storing
  2. その後、キーワード「Do」を入力します。ここでは、構文で見たように、最初に条件を定義する必要はありません。
    type-the-do-keyword
  3. 次に、ユーザーにパスワードの入力を求める入力ボックスを表示するコード行を記述する必要があります。
    write-a-line-of-code
  4. ここから、最大 5 までカウントできるカウンターを設定する必要があります (ループの反復ごとに加算されます)。
    define-a-counter
  5. 次に、キーワード「Loop While」を入力し、ユーザーが入力ボックスに入力した値をチェックし、カウンタ値が 5 未満かどうかをテストできる 2 つの条件を設定します。
    type-keyword-loop-while-and-define-two-condition
  6. 最後に、実行したいコードを記述します。ここでは、ユーザーが入力したパスワードが正しい場合にメッセージ ボックスを表示する IF ステートメントを使用しています。
    write-the-code-you-want-to-run
 Sub vba_do_loop_while() Dim varPassword As Variant, i As Double Do varPassword = InputBox _ ("Enter the password to start the procedure:", _ "Check Password 1.0") i = i + 1 Loop While varPassword <> "CorrectPassword" And i < 5 If varPassword = "CorrectPassword" Then MsgBox "Your Password is Correct" End If End Sub

このコードについて説明しましょう。

  • このコードの最初の部分には、ユーザーに入力ボックスを表示してパスワードの入力を求めるdo while ループがあります。
  • パスワードが間違っている場合は、ユーザーが正しいパスワードを入力するまでループが実行され続けます
  • ただし、ループの繰り返しをカウントするためにカウンターを使用しているため、このカウンターが 5 に達すると、ループは停止します
VBAとは

関連するチュートリアル

  • VBA ループ (初心者から上級者まで)
  • VBA 選択ケース
  • Excel で VBA を使用してすべてのシートをループする
  • VBA を使用した範囲のループ (列、行、および UsedRange)
  • VBA FOR LOOP (For Next、For Each)
  • GoTo VBA 宣言

コメントを追加する

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