ブライアンがいくつかのワークブックのいずれかを処理しているときに、Excelから「応答していません」というメッセージが頻繁に表示されます。彼は、そのような問題を診断して修正するための最良の方法について疑問に思います。

確認できることはたくさんありますが、ここで車輪の再発明を行うのではなく、役立つ情報へのポインタをいくつか紹介します。確認するのに最適な場所は、実際にはマイクロソフトサポート技術情報です。役立つ記事が2つあります。あなたがチェックしたいと思う最初の記事はこれです:

https://support.microsoft.com/en-gb/kb/2758592

この記事では、主にワークブックの外部要素に焦点を当てています。各要素は、Excelがデータを処理する方法に影響を与える可能性があります。ワークブックの内容(データ自体、フォーマット方法、および追加のオブジェクト)に問題があると思われる場合は、次の記事を参照してください。

https://support.microsoft.com/en-us/kb/2735548

もちろん、問題はデータや外部要素にまったく関係していない可能性があります。マクロの実行中に「応答していません」というメッセージが表示される場合は、マクロ自体が原因である可能性があります。その場合は、デバッグスキルを磨き、マクロに論理エラーがあり、マクロが無限ループに陥っていないかどうかを確認する必要があります。 (無限ループとは何ですか?繰り返しを自然に停止する条件に遭遇することはないため、一連のステップが永久に繰り返されます。)その場合は、マクロを変更して、無限ループ条件が発生しないようにする必要があります。 tが発生します。

もちろん、マクロが可能な限り機能している可能性があり、それには非常に長い時間がかかります。このような場合、Excelは、バックグラウンドで実行されているマクロが終了するまで、フォアグラウンド処理(ワークブックに表示されるもの)を「オフ」にしているように見えます。

これを少し緩和する1つの方法は、マクロコードにDoEventsコマンドを配置することです。これにより、VBAは息を呑み、「イベント」を実行します

コードの実行が非常に忙しく、他のすべてを無視している間に蓄積されました。つまり、VBAでExcelが「応答」できるようになるため、「応答していません」というメッセージは表示されません。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(13435)は、Microsoft Excel 2007、2010、2013、および2016に適用されます。