見出し画像

【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が膨大な処理をするのでフリーズします

上のコードでセルに何かしらの値が入っていない場合
処理が終わるまで実行されます

この状態で実行するとExcelがフリーズします

興味本位で実行をかけたら
一瞬で7900行まで数字が入り
マウスカーソルがくるくるしたので「escキー」で終了

Excelは100万行あるので無限ループには注意です

無限ループに注意する

さきほど、膨大な処理を繰り返すとお伝えしましたが
さらに注意が必要なのが「無限ループ」です

無限ループのコード

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マスターに俺はなる

最後まで読んでいただき
ありがとうございます
安田

マガジンにまとめてありますので
よかったらそちらも御覧ください


この記事が気に入ったらサポートをしてみませんか?