【Excel VBA】If Elseとは違う条件式(Select Case)について
エンジニアのIMMRです。Excel VBAの条件式には、以前に説明したExcel VBA 条件式(If Else)とこれから説明するSelect Caseの二つあります。1.従来のIf Else条件式If Elseは条件に合った時は処理Aを、条件に合わなかったら処理Bを実行します。では、下記のようなデータがあり、複数の条件があるとします。If Elseを使用して作成すると2種類の方法が浮かぶと思
Workteria(ワークテリア)では難易度の高いものから低いものまで、スキルや経験に合わせた案件を多数揃えています。会員登録は無料ですので、ぜひ会員登録してご希望の案件を探してみてください!
フリーランス/正社員のエンジニアとして活躍するには、ご自身のスキルや経験に合わせた仕事を選ぶことが大切です。ご希望の案件がみつからない場合はお気軽にお問い合わせください!ユーザ満足度の高いキャリアコンサルタントが在籍していますので、希望条件や悩み事などなんでもご相談ください。ご希望にピッタリの案件をご紹介させていただきます。
皆さんこんにちは、エンジニアのIMMRです。
下記のようなブックがあったとします。
図1 サンプルブック
このリストにおいて、6月と7月だけの参加者人数の合計を計算したいと思います。
どのように行いますか。
もちろん、一番上から一番下までFor Nextを使用して
その中で日付が6月と7月分だけ参加者人数だけを計算するという方法もあります。
しかし、今回は、Nor Nextではなく、Do Loopという繰り返し作業を行っていきたいと思います。
Do Loopステートメントも繰り返し処理の一つです。
では、For Nextとなにが違うのかというと
For Nextは、指定した回数だけ繰り替えしを行うのに対して
Do Loopは指定した条件だった場合、繰り返しを行います。
また、Do Loopは2種類あり、
1つは、指定の条件になるまで処理を繰り返す
もう一つは指定の条件である場合は処理を繰り返す
があります。
まあ、行っていることは同じなのですが・・・
図1 サンプルブックでイメージしてみると
図2 Do Loop説明
2つとも同じ範囲だが、条件が違う。
6月と7月の範囲において、
①6月~7月の範囲で処理を続ける。→8月になるまで処理を続ける。
②6月~7月の範囲で処理を続ける。→8月より前の月だったら処理を続ける。
という感じです。
上記でも説明しましたが、Do Loopは2種類あり、記載方法も変わります。
その記載方法について、1つずつ説明します。
これは条件が満たすまで処理を続ける方法です。
記載方法は下記の通りです。
記載方法
Do Until 条件
処理
Loop
Do Until 条件で記載します。
これは、条件になるまで、処理を続ける。
Do Until ~Loopまでの処理繰り返すといった方法です。
これは条件が満たしている間は処理を続ける方法です。
記載方法は下記の通りです。
記載方法
Do While 条件
処理
Loop
Do While 条件で記載します。
これは、条件である場合は処理を続ける。
Do While ~Loopまでの処理繰り返すといった方法です。
ではサンプルプログラムを見ていきましょう。
図1 サンプルブックを使用したサンプルプログラムになります。
サンプルプログラム1(①指定の条件になるまで処理を繰り返す)
Sub test1()
Dim i As Long
Dim sum_M As Long
sum_M = 0
i = 4
Do Until Month(Cells(i, 1)) = 8
sum_M = sum_M + Cells(i, 2)
i = i + 1
Loop
Range("E1") = sum_M
End Sub
Do Until を使用して、繰り返しを行っています。
Do Untilは、指定の条件になるまで処理を繰り返すです。
条件が8、つまり8月まで処理を続けることになるので、処理の対象は6月と7月になります。
サンプルプログラム2(②指定の条件である場合は処理を繰り返す)
Sub test2()
Dim i As Long
Dim sum_M As Long
sum_M = 0
i = 4
Do While Month(Cells(i, 1)) < 8
sum_M = sum_M + Cells(i, 2)
i = i + 1
Loop
Range("E1") = sum_M
End Sub
Do While を使用して、繰り返しを行っています。
Do Whileは、指定の条件である場合は処理を繰り返すです。
条件が8より小さい、つまり8月より前の間は処理を続けることになるので、処理の対象は6月と7月になります。
下記の結果のように
Do Until を使用したサンプルプログラム1(①指定の条件になるまで処理を繰り返す)と
Do While を使用したサンプルプログラム2(②指定の条件である場合は処理を繰り返す)
同じ結果になりました。
図3 サンプルプログラム1(①指定の条件になるまで処理を繰り返す)実行結果
図4 サンプルプログラム2(②指定の条件である場合は処理を繰り返す)実行結果
Do Until を使用したサンプルプログラム1(①指定の条件になるまで処理を繰り返す)と
Do While を使用したサンプルプログラム2(②指定の条件である場合は処理を繰り返す)
のどちらも同じ結果にすることができました。
これにより、条件で繰り返しを行うか判断することができました。
そのような方はぜひ、Workteriaサイトをご利用ください!
定期的にご本人に合う高額案件を紹介
リモートワークなど自由な働き方ができる案件多数
専属エージェントが契約や請求をトータルサポート