別のプログラムでOL​Eの操作が完了するま​で待機を続けます"の​エラーが発生するのは​なぜですか?

76 views (last 30 days)
MathWorks Support Team
MathWorks Support Team on 18 Nov 2009
Excel VBAマクロで Excel Link の関数を使用しています。MLEVALSTRING関数で 実行時間が長いMATLAB 関数を実行すると、Excel で、以下のメッセージのダイアログが表示されます。
(エラーメッセージ)
別のプログラムで OLE の操作が完了するまで待機を続けます。
ダイアログ上の[OK]ボタンを選択しても、時間が経過すると、また同じダイアログが表示されます。アプリケーションの使用を継続するには、MATLABの処理が終了するまで、ダイアログが表示される度に [OK]ボタンを選択しなければいけません。

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 15 Jun 2018
これは、MATLAB の処理が非常に長い場合に想定される動作で、COM Automation の呼びだしが、Excel のタイムアウトを超えた場合に発生します。
もし、処理が1,2分以上かかるものでない場合は、INPUT関数やキー入力などのユーザ入力待ちの処理が含まれていないか、確認してください。
処理が1,2分以上かかると想定される場合は、以下の手順で Excel の警告を無効にすることができます。
1. 1回の MLEvalString の呼びだしに対する警告を無効にするには、以下のようなマクロを書き、Application.DisplayAlerts を設定します。
Sub runLongOperation()
Application.DisplayAlerts = False
MLEvalString ("myLongOperation")
Application.DisplayAlerts = True
End Sub
ここで、 "myLongOperation"が MATLABの実行関数です。
2. Excel2000よりも古いバージョンをご利用の場合は、DisplayAlerts の設定を個別に設定できないため、以下の記述で全ての警告をオフにします。
Sub nomorewait()
Application.DisplayAlerts = False
End Sub
この方法では、例えば、データを失う動作が発生した場合でも、警告が表示されなくなりますので、ご注意ください。

More Answers (0)

Categories

Find more on Spreadsheet Link in Help Center and File Exchange

Products


Release

R13SP1

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!