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

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

採用された回答

MathWorks Support Team
MathWorks Support Team 2018 年 6 月 15 日
これは、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
この方法では、例えば、データを失う動作が発生した場合でも、警告が表示されなくなりますので、ご注意ください。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeSpreadsheet Link についてさらに検索

製品


リリース

R13SP1

Community Treasure Hunt

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

Start Hunting!