2024.02.11(更新日: 2024.04.10)
Do whileループで無限ループ発生

はじめに
Excel VBAの学習をしていたら、無限ループが発生した。
この記事では、無限ループが発生するまでの過程と、その解決方法について書いていく。
前提
こちらのサイトからダウンロードしたファイルに対して、以下のような処理を書いていた。

E11が2018/10/31だった場合に、C11からH11をL8からQ8にコピーするという処理。
E11はこちら。

C11からH11はこちら。

L8からQ8はこちら。

実行すると以下のようになった。

意図した通りの動作だ。
これに対して、Do whileループで繰り返し処理を行おうとしたら、無限ループが発生した。
Do whileループを書いてみた
このような処理を書いたら、無限ループが発生した。

「Do While 条件 条件が真の時に起こる処理 Loop」というのが、Do whileループの構文。
Range(“E11”) = “2018/10/31” という条件はずっと成り立つので、Range(“C11:H11”).Copy Range(“L8:Q8”)がずっと繰り返されてしまう。
無限ループが起こるとどうなったか
Excelの処理が止まって、くるくる回っているカーソルになっていた。
無限ループの対処方法
Excelを強制終了することで、無限ループに対処した。
Macの場合、「option + command + esc」で、強制終了の画面が表示される。

Excelを選択して、強制終了を押した。
作業内容の回復
作業内容を回復して、Excelを再起動してくれるみたいだから、OKを押してみた。

そうすると、以下の表示になった。

「回復済みのブックを開きますか?」という問いかけに対して、「はい」を押してみた。
そうすると、以前の内容を開くことが出来た。
投稿ID : 19457
コメントを残す