![見出し画像](https://assets.st-note.com/production/uploads/images/137947908/rectangle_large_type_2_302fd132af195dc1f08c248a30a71a1e.png?width=1200)
【Day18】文系オタクのエンジニア道~ループの構文 Do Loop文~
こんにちは
安田です
今回はループ処理のDo Loopステートメントについて学習しました
Do Loopステートメントは条件が完了するまで永遠に処理を繰り返す
コードはこちら
Sub ループ()
Dim n As Integer
n = 1
Do While Cells(n, 1).Value = ""
Cells(n, 1).Value = n
n = n + 1
Loop
End Sub
Doのあとに条件を記載します
Do While Cells(n, 1).Value = ""
(n, 1)の値が空白の場合
nをセルにいれる
そのあとにnに1を足した数字のセルを見る
これが単純なLoop処理です
膨大な処理のDo Loopステートメントに注意
条件がずっと成立している状態だと
Excelが膨大な処理をするのでフリーズします
上のコードでセルに何かしらの値が入っていない場合
処理が終わるまで実行されます
![](https://assets.st-note.com/img/1713620978230-ZtBupA6vAj.png?width=1200)
興味本位で実行をかけたら
一瞬で7900行まで数字が入り
マウスカーソルがくるくるしたので「escキー」で終了
![](https://assets.st-note.com/img/1713621090274-jUyZcGxZ9f.png)
無限ループに注意する
さきほど、膨大な処理を繰り返すとお伝えしましたが
さらに注意が必要なのが「無限ループ」です
無限ループのコード
Sub ループ()
Dim n As Integer
n = 1
Do While Cells(n, 1).Value <> ""
Cells(n, 1).Value = n
'n = n + 1
Loop
End Sub
この処理をすると、Excelがフリーズします
タスクマネージャーからタスクを終了しないといけなくなるので注意が必要です
まとめ
Do Loopステートメントは膨大な繰り返し処理と無限ループにならないか、注意が必要ですね
やってしまいそうで怖いのでちゃんと頭に入れておくようにします
「VBAマスターに俺はなる」
最後まで読んでいただき
ありがとうございます
安田
マガジンにまとめてありますので
よかったらそちらも御覧ください
この記事が気に入ったらサポートをしてみませんか?