VBA入門_繰り返し処理(Do Loop) 

この記事を書いたチーム:frontier
VBA入門_繰り返し処理(Do Loop)  Smallit 技術ブログ

Do~Loop文を使った繰り返し処理 

【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc.  詳細はこちらから>

For~Nextは、繰り返す回数をあらかじめ指定するものでしたが、 

Do~Loopは、繰り返す回数ではなく、繰り返す条件を指定するものです。 

構文 

または、次の構文を使用できます。 

condition 

省略可能です。 

(True) または偽 (False) を評価する数式、あるいは文字列式を指定します。 

引数 condition の値が Null 値の場合、引数 condition は偽 (False) であるとみなされます。 

statements 

引数 condition が真 (True) である間、または引数 condition が真 (True) になるまで繰り返し実行される、 

任意の行数のステートメントを記述します 

上記構文の余分なものを消して、日本語に直してみましょう。 

または、 

Whileは、条件を満たす間、・・・処理・・・を実行します。 

Untilは、条件を満たす迄、・・・処理・・・を実行します。 

Do Loop ステートメント 

Do Loopでは条件によって繰り返し処理を指定することが可能であり、具体的な回数が分からない場合にはこちらが使われます。 

ステートメント 

判定のタイミング 

繰り返し処理 

Do While~Loop 

実行前 

条件が真の間 

Do~Loop While 

実行後 

条件が真の間 

Do Until~Loop 

実行前 

条件が真になるまで 

Do~Loop While 

実行後 

条件が真になるまで 

Do Loop 例文 

Do Loop文を使って、「セルA1」から「セルA10」まで「1」を入力する事例です。 

または、 

または、 

Whileは、条件を満たす間 

Untilは、条件を満たす迄 

従って、WhileとUntilの条件は、補集合の関係になります。 

つまり、 

Not(Whileの条件) = Untilの条件 

Whileの条件 = Not(Untilの条件) 

このような関係になります。 

マクロ実行後 

 使用例・Do~Loopのネスト(入れ子) 

10行、横10列に1を入れる場合です。 

 マクロ実行後 

 

参照文献:https://excel-ubara.com/excelvba1/EXCELVBA317.html 

【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>

Smallitのサービス