VBAの実行中に「応答なし」となり処理が停止してしまう

Microsoft Excel VBAのプログラムを実行中に「応答なし」となり、処理が停止してしまうことがあります。その場合は、プログラム中にfor文がないか確認してみてください。Excel側の不具合のようなのですが、for文が原因となっていることがあるようです。これは、for文の中にDoEvents関数を置くという対策で解決できることがあります。

 

もとのプログラム

For i =1 To 10000 Then

 

        '''''処理'''''

 

Next i

 

対策後のプログラム

For i =1 To 10000 Then

 

        '''''処理'''''

 

        DoEvents

Next i

 

For文がたくさんあったり入れ子になっていたりする場合は、すべてのFor文中にDoEventsを置いてみるとよいでしょう。なぜこれで解決するのかはいまいちわからないのですが、試してみてください。