学習日:2024/07/18
参考書:ExcelVBA本格入門 技術評論社(著者 大村あつし)
7-3(P145-150)
【学習内容のまとめ】
-
Do…Loopステートメントとは?
For...Nextステートメント → ループ回数の上限を指定する
For Each…Nextステートメント → コレクションのオブジェクトの数だけループする
Do...Loopステートメント → ある条件が満たされるまで、もしくはある条件が満たされている間は処理を繰り返す。4種類に区分
ループの前で条件判断 ループの後で条件判断 条件を満たすまでループ Do Until…Loop Do…Loop Until 条件を満たす間はループ Do While…Loop Do…Loop While -
条件が満たされるまでループする - Untilキーワード
-
Do Until...Loop(ループの前で条件判断)
Range("A1").Select
Do Until ActiveCell.Value = "” → 空白セルが登場するまで
ActiveCell.Font.Bold = True → フォントを太字にする
ActiveCell.Offset(1,0).Select → 行方向を1移動
Loop
-
Do...Loop Until(ループの後で条件判断)
Range("A1").Select
Do → 条件判断の前に処理を実行
ActiveCell.Font.Italic = True → フォントを斜体にする
ActiveCell.Offset(1,0).Select → 行方向を1移動
Loop Until ActiveCell.Value = "” → 処理実行後に空白セルが登場するまでという条件判断
※セルA1が空白でも1度は処理が実行される
-
-
条件を満たす間はループする - Whileキーワード
-
Do While…Loop(ループの前で条件判断)
Range(”B1”).Select
Do While ActiveCell.Value = "” → セルが空白の間は実行
ActiveCell.Value = "ABC” → セルの値にABCと入力
ActiveCell.Offset(1,0).Select → 行方向に1移動
Loop
※処理を実行する前に条件判断をするので、セルB1が空白でなかったら1度も処理は実行されない
-
※Exit DoステートメントでDo...Loopステートメントを抜けることができる
※無限ループに陥ったらEscキーでマクロの実行を強制中断する