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を押してみた。

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

「回復済みのブックを開きますか?」という問いかけに対して、「はい」を押してみた。

そうすると、以前の内容を開くことが出来た。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です