ExcelVBAでマクロがたまに"実行時エラー 50290" で止まる場合の対処方法

WorksheetFunction.RTD()がうまくいく時とうまくいかない時がある

Excelが忙しいらしいので、Application.Ready = Trueをチェックする。

'Excel のバージョンが 2002 以降の時
If Val(Application.Version) >= 10 Then

'アプリケーションの状態を確認し、準備ができている場合だけ処理を行います。

    If Application.Ready = True Then
       <実行したい処理をここに記述します。>
   End If

'Excel のバージョンが 2000 以前の時は、そのまま処理を続けます。
Else
<実行したい処理をここに記述します。>
End If

Ready プロパティが False の時、強制的に True に戻すには

Sendkeys "{ESC}"

など、なんとかしてExcelを落ち着かせる必要がある。



ネタ元