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を落ち着かせる必要がある。
ネタ元