別のプログラムでOLEの操作が完了するまで待機を続けます"のエラーが発生するのはなぜですか?
341 ビュー (過去 30 日間)
古いコメントを表示
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
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 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Spreadsheet Link についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!