Excel 2013 で VBA コードを実行すると、Excel のパーツが白または灰色に変わる
現象
Microsoft Excel 2013 で Microsoft Visual Basic for Applications (VBA) コードを実行すると、Office テーマによっては、Excel の一部が白または灰色で表示されることがあります。 コードが完了するまで空白のままです。 この問題は、VBA コードが、マクロが完了する前にユーザーが結果を表示するのに十分な時間実行されるマクロで次のアクションの 1 つ以上を実行する場合に発生する可能性があります。
- セルを繰り返し選択する
- シートを挿入する
- 作業ウィンドウを更新または開く
- ブックを追加する
原因
この問題は、新しいグラフィックス エンジンを最適化するために Microsoft Office 2013 で行われた変更によって発生します。
回避策
ScreenUpdating を使用して Excel の画面更新プログラムを無効にし、無効になっている間に変更が表示されないようにします。 これにより、マクロのパフォーマンスが向上する場合もあります。
Application.ScreenUpdating = False Workooks.Add Application.ScreenUpdating = True
画面の変更を確認する必要がある場合は、画面が白く表示されるコードの行の後に DoEvents コマンドを挿入します。 DoEvents を使用すると、マクロのパフォーマンスを維持するのに役立ちます。
Workbooks.Add DoEvents
状態
この制限は、Excel 2013 の既知の制限です。
Note
すべてのバージョンの Excel では、Windows がアプリケーションを白にし、応答しないマークを付けると、実行時間の長いマクロでも同様の効果が発生する可能性があります。 これは、マクロの実行中に Excel が Windows に応答しないために発生します。 DoEvents は、Excel が Windows に応答し、アプリケーション画面の回復を許可することで、このシナリオにも役立ちます。