VBAプログラミング言語はDoWhileループをサポートしています。この記事では、ExcelVBAでDoWhileループを使用する方法を学習します。

DoWhileループの構文

VBA Do Whileループには2つの構文があります:

エントリ制御DoWhileループ

Do While Condition

'Statement1

'Statement2

'--

'--

'StatementN

Loop

この構文では、最初に条件がチェックされます。条件が一致した場合、コントロールはループに入り、そうでない場合、ループは終了します。

終了制御DoWhileループ

Do

'Statement1

'Statement2

'--

'--

'StatementN

Loop While Condition

この構文では、制御は最初にループに入ります。各タスクを実行した後、VBAは最後に状態をチェックします。条件がTrueの場合、Do Whileループが続行され、そうでない場合、ループはすぐに終了します。ループを少なくとも1回実行する場合は、この構文を使用します。

例:2枚だけが残るまでシートを削除するこの例では、VBA Do Whileループを使用してワークブックに2枚だけが残るまで、各シートを1つずつ削除しようとします。

Sub WhileTest()

Application.DisplayAlerts = False

Do While Sheets.Count > 2

ActiveSheet.Delete

Loop

Application.DisplayAlerts = True

End Sub

上記のサブルーチンは、最初にワークブックに2枚以上あるかどうかをチェックします。ブックに3つ以上のシートがある場合、コントロールはループに入り、現在のアクティブシートを削除します。ループは、残り2枚になるまで続きます。

ブックにすでに2枚または1枚しかない場合、コントロールはループに入りません。何も起こりません。

ブックに2枚しかない場合でも、ループの開始時に少なくとも1枚のシートを削除したい場合は、exitコントロールのdowhileループを使用します。

Sub WhileTest()

Application.DisplayAlerts = False

Do

ActiveSheet.Delete

Loop While Sheets.Count > 2

Application.DisplayAlerts = True

End Sub

上記のサブルーチンは、最初に1枚のシートを削除し、次に何枚のシートがあるかをチェックします。それらが2シートより大きい場合、ループは続行されます。ブックの残りが2枚以下の場合、ループは終了します。

ここでの主なポイントは、このループが少なくとも1回実行されることです。

これを使用して、ユーザーに質問することでいくつかのタスクを繰り返すことができます。たとえば、ユーザーにパスワードを要求できます。そして、彼が正しいパスワードを入力するか終了するまで、彼をループさせます。このシナリオでは、少なくとも1回はユーザーにパスワードを要求する必要があります。

注:アプリケーションオブジェクトのDisplayAlertプロパティを使用して、アラートを無効にしました。 it link:/ files-workbook-and-worksheets-in-vba-delete-sheets-without-confirmation-prompts-using-vba-in-microsoft-excel [here] .について読むことができます。 、これはExcelVBAのDoWhileループでした。それが十分に説明的だったと思います。このクエリまたはその他のExcel365 / 2019/2016関連のクエリについて疑問がある場合。以下のコメントセクションで質問してください。

関連記事:

link:/ vba-for-loops-with-7-examples [Microsoft ExcelVBAでのForループの7つの例] | forループは、あらゆるプログラミング言語で最もよく使用されるループ手法です。 VBAでは、Forループはいくつかの方法で使用できます。

VBAのIfElseIfステートメント| If ElseIfは、条件付き出力を返すための基本的な条件チェック手法です。

link:/ files-workbook-and-worksheets-in-vba-delete-sheets-without-confirmation-prompts-using-vba-in-microsoft-excel [MicrosoftExcelのVBAを使用して確認プロンプトなしでシートを削除する]:*シートを削除すると、確認のプロンプトが表示されます。それを無効にするには、アプリケーションを使用します…​

link:/ menus-toolbars-status-bar-in-vba-display-a-message-on-the-statusbar-using-vba-in-microsoft-excel [ExcelのVBAステータスバーにメッセージを表示する] |ステータスバーにメッセージを表示するには、ApplicationオブジェクトのStatusBarプロパティを使用します。

人気の記事:

link:/ keyboard-formula-shortcuts-50-excel-shortcuts-to-increase-your-productivity [生産性を高めるための50のExcelショートカット] |あなたの仕事をより速くしてください。これらの50のショートカットにより、Excelでの作業がさらに高速になります。

link:/ forms-and-functions-introduction-of-vlookup-function [ExcelのVLOOKUP関数] |これは、さまざまな範囲やシートから値を検索するために使用される、Excelの最も使用され人気のある関数の1つです。

link:/ Tips-countif-in-microsoft-excel [COUNTIF in Excel 2016] |この驚くべき関数を使用して、条件付きの値をカウントします。特定の値をカウントするためにデータをフィルタリングする必要はありません。

ダッシュボードを準備するには、Countif関数が不可欠です。

link:/ excel-formula-and-function-excel-sumif-function [ExcelでSUMIF関数を使用する方法] |これは、ダッシュボードのもう1つの重要な機能です。これは、特定の条件で値を合計するのに役立ちます。