【VBA】可変の繰り返し処理!Do〜Loop文の使用方法【5分でわかる】
Excelマクロ(VBA)には数種類の繰り返し文が存在してます。
本記事では可変(繰り返す回数が決まってない)の処理が可能のDo〜Loop文の説明を行います
よく使用される例を5分でわかるように説明します。よろしくお願いします!
では、確認していきましょう!
- 繰り返し処理を学習中の人
- 可変の繰り返し処理を知りたい人
- 可変の繰り返し処理のが使用される例を知りたい人
関連記事
Do〜Loop文の基本
はじめにDo〜Loop文の使用用途と基本的な使い方(構文)をまとめます。
使うべき時と使い方がわかるのでチェックしてみてください。
使用用途
Do〜Loop文がどのような時に使用使用されるかというと
可変を繰り返すと言われてピンとこない人も多いかと思います。
使用される具体例も合わせて確認してみましょう。
- 変数(カウンタ)が10以下である間繰り返す
- セルの内容を上から確認していき、内容が空白になるまで繰り返す
- 日付が明日になるまで処理を繰り返す
このような繰り返し処理を行いたい時に使用されます。
特に、例の2番目と3番目を実装する場合はDo〜Loop文を使用しないと実装できません。
繰り返し処理の幅を広げるためにはDo〜Loop文を習得する必要があると言えるでしょう。
基本構文
Do〜Loop文の基本構文の確認をしていきましょう
「Do」と「Loop」については定数なのでDoとLoopが出てきたら本処理が行われていると考えましょう。
{条件}は繰り返し処理が終了される条件を記入する場所になります。
{条件}の入力方法と入力場所は2種類あります。順に確認してみましょう
WhileとUntilの違い
{条件}の入力方法を確認していきましょう。
2種類あるどちらかを使用することができます。種類と特徴の説明を行います
条件の部分には比較の演算子を入力してください。
では一つずつ説明します
入力方法①:Whileを使用する場合
Whileは条件に合致する間実行されます。
言い換えると日付が変わるまで実行されることになります。
入力方法②:Untilを使用する場合
Untilは条件に合致するまで実行されます。
言い換えると条件に合致するまでの間実行されることになります。
言い換えると日付が変わるまで実行されるようになります。
例ではWhileとUntilで同じ条件を確認しました。WhileでもUntilでも同じ処理ができますが使用方法が違うため両方とも特徴が理解しましょう。
条件を入力する場所の違い
{条件}を入力する場所での処理の違いを確認していきましょう。
2種類の場所に入力することができます。
1つずつ確認していきましょう。
入力場所①:Doと同じ行に入力する場合
条件式をDoと同じ場所に入力すると、Do〜Loop文の処理を行う前に条件に一致するかの比較をされます。
入力方法②:Loopと同じ行に入力する場合
条件式をLoopと同じ場所に入力すると、Do〜Loop文の処理を行った後に一致するかの比較をされます。
どちらも特徴がありますが、
理由はループの中の処理を行わない想定でコードを作成することは初心者には困難だからです。
詳しいことは考えずにLoopを同じ行に{while}か{Until}を入力しましょう。
Do〜Loop文の使用例
Do〜Loop文を使用したサンプルプログラムを確認していきます。
カウンタを使用してカウンタ値をメッセージボックスで出力する処理を20回繰り返すプログラムを作成しました。
サンプルプログラム
8行以降を確認してください。
変数iが1から20までで繰り返し処理がされます。
Sub doLoop()
' カウンタ変数の宣言
Dim i
' カウンタの初期値を設定
i = 1
' Do〜Loop文の開始
Do
MsgBox i & " 回目の処理です"
i = i + 1
Loop While i <= 20
End Sub
Do〜Loop文の処理を確認
サンプルプログラムを例にDo〜Loop文の処理を確認してみましょう。
4行目以降を確認しましょう。
Dim i
' カウンタの初期値を設定
i = 1
' Do〜Loop文の開始
Do
MsgBox i & " 回目の処理です"
i = i + 1
Loop While i <= 20
処理の流れを確認
処理の流れを一つずつ確認していきます
①変数i(カウンタ)に初期値が設定される
②変数iが1の状態で1回目のループ処理が行われる
③Do文まで処理が戻る
④変数iが2の状態で2回目のループ処理が行われる
⑤変数iが20以上になるまで繰り返される
今回の例では変数iをカウンタとして使ってます。
このように使用される変数をカウンタと呼ばれます。
今後使用されることが多いので今回で覚えるようにしましょう。
まとめ
いかがだったでしょう。
Do〜Loop文を使用した繰り返し処理の解説をしました。
- カウンタを使用した繰り返しに使われる
- 可変の値の繰り返し処理を行う時に使用される
覚えると便利な処理なのでこの記事を読んでマスターするようにしましょう!
ではまた
関連記事
ディスカッション
コメント一覧
まだ、コメントがありません