Excel VBAを使用していて「応答なし」で困っているなら、DoEvents を試してみよう。

VBA走らせていて、応答なしになるときって困るよね~。
業務効率の為って、vbaで処理させてるのに、応答なしで、動いているのか止まっちゃったのか判断付かずに時間だけ過ぎている。
このジレンマはもどかしい。。。
理解も浅いまま、かなりのコピペでvbaを作りこんでいるのもあって、つぎはぎだらけのvbaだし、どこをどう改善していいかもわからない始末。
そんな時に、Loop処理させているところあったら、いったんこのDoEventsを使ってみると改善出来るかも。

このDoLoop自体は、本来、処理を途中で止めてOSに処理を渡すための関数らしく、ループ処理でこれ多用すると遅くなるデメリットな情報もあったけど、所詮、俺の業務なんてそんな複雑怪奇でもないし、使ってみたところで、あんまり時間差は感じられなかった。最近は、PC自体が高速化してるから、古くからそんな使い方ご法度!なんて言われている作法も、結構いけるもんだと感じます。力任せってやつ。
それにしても、これで応答なし問題が解決できるなら、とにかく試す価値ありって関数で、忘れないように忘備録案件でした。

スポンサーリンク

スマホのみ下に表示