
VBAを使ってHFSSというソフトウェアを外部制御したいと考えています。
そのソフトの起動&終了や図形の形状編集、各種形式のファイル出力といった軽い操作は難なく動作させる事が出来るのですが、数GBのメモリを使用するような重たい処理をさせたりすると「別のプログラムでOLEの操作が完了するまで待機を続けます。」といったメッセージがVBA側に表示される事があり、その時点でFor文が途中で止まってしまい困っています。どうすればよろしいでしょうか?
なお、そのソフトウェア側で重たい処理が終了したのちに手動で「OK」ボタンをクリックすると次の処理へ進ませる事は出来ます。ですので、上記エラーメッセージが表示されたら自動でOKを選択したり、On Error Resume Nextのような感じでエラーメッセージを無視出来るだけでも結構です。
No.1ベストアンサー
- 回答日時:
こんにちは。
話は簡単なのですが、解決は難しいです。
>「別のプログラムでOLEの操作が完了するまで待機を続けます。」
私の方も同様の問題でしたが、IE のアドオンのActiveX なので、私の状況とは違うようです。
本来は、マクロを使用するときに、OLEプログラムを外して動かせばよいのですが、たぶん、HFSS自体が、OLEで、Excelに繋がっているのでしょうね。
今回の原因は、OLE側の本体のソフトが終了する前に、マクロが終わろうとしてしまうということが原因です。それで、良くコードをごらんになって、「ソフトの起動&終了や図形の形状編集、各種形式のファイル出力」の、それぞれの作業の終わり目があるはすでず。その終わり目の前に、Wait を入れればよいのではないかと思います。
Application.Wait でも良いのですが、
負担の少ないAPIの
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
'モジュールの最上に書く
で、適当の待ち時間を入れてあげればよいのではないか、と思います。
Call Sleep 1000 '1000/1000秒...1秒
状況からすると、1秒以上は掛かると思いますが……。
それから、
Application.ScreenUpdating = False 'や
Application.Calculation = xlCalculationManual '(<--> = xlCalculationAutomatic)
この二つぐらいが、効をそうするのではないかと思います。
また、On Error Resume Next などの、エラートラップは、あくまでも、VBA の内部の問題ですから、トラップには掛かりません。
ご回答頂きどうもありがとうございます。
WaitやApplication.ScreenUpdating = False、Application.Calculation = xlCalculationManualを全て試してみましたがダメでした。
しかし、頂いたアドバイスを元に、VBAで全てを操作する事を諦め、VBAを使っていったん複数のVBSを作っておいた上で、Shellを使ってそれぞれをMSDOS経由でVBSを実行させてみた所、意図した通りの動作をさせる事が出来ました。本当にどうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- ノートパソコン Windows 10 動作改善方法 6 2023/04/26 22:30
- Excel(エクセル) Excel2010 VBAが特定動作で実行出来なくなる 7 2022/12/29 14:26
- Visual Basic(VBA) VBA ユーザーフォーム 3 2022/04/14 10:30
- 英語 英語の相の種類 Wikipediaでは He began to talk.(起動相) He cont 1 2023/06/26 11:54
- Visual Basic(VBA) エクセルVBA コードが同じでもファイルによって処理速度が大きく変わるのはなぜ 5 2022/11/06 21:34
- Windows Me・NT・2000 widows xpのエラーで利用ができなくなりました 3 2022/12/21 13:43
- Windows 10 windows10のクリーンインストールが完了出来ない 2 2022/06/04 13:33
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Visual Basic(VBA) Vba UserFormを前面に出す方法を教えてください 1 2023/08/17 11:08
- Visual Basic(VBA) PowerPoint VBA で画像の鮮明度を変更する方法がわかりません 2 2023/03/24 13:34
このQ&Aを見た人はこんなQ&Aも見ています
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
特定のエクセルファイルが止まってしまう
Excel(エクセル)
-
「ほかのアプリケーションを無視する」オプションの存在目的は?
Excel(エクセル)
-
-
4
VBA シートをコピーする際に Copyメソッドは失敗しましたのエラーが出てしまいます
Visual Basic(VBA)
-
5
エクセルでエラーが出て困っています。
Excel(エクセル)
-
6
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
7
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
8
配列の値を置換するにはどうすればいいでしょう?
Excel(エクセル)
-
9
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
10
Access VBA [リモートサーバーがないか使用できる状態ではありません]
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA「別のプログラムでOLEの操...
-
解凍後の.zipファイルは消して...
-
ファイルアイコンを白紙にした...
-
Geek Uninstaller と Revo Unin...
-
拡張子をtxtからdatに
-
PDFで受取ったファイルがクリッ...
-
Excelで「同じ名前のファイルが...
-
バッチファイルを作成して、ア...
-
.svn-baseというファイルが消え...
-
写真(jpgファイル)をトリ...
-
ファイルを閉じても開いている...
-
破損したISOのファイルを修復す...
-
Outlook2010 データ (.ost)の復元
-
CドライブのAPSETUPフォルダは...
-
ドキュメントの回復が消えない
-
圧縮したいのに解凍される Lha...
-
アプリケーションエラー0xc0000...
-
エクスプローラーに音楽ファイ...
-
zipファイルを解凍しないで中身...
-
windows10のメモ帳の不具合につ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA「別のプログラムでOLEの操...
-
ファイルメーカーによる勤務時...
-
Susieで画像が表示されません
-
タイピング練習用ソフトがバグ...
-
ATAIPエラーに関してです
-
Microsoft Visual C++ Runtime ...
-
Outlook で受信メールが開きません
-
OEで急に受信できなくなった。
-
エラーが頻発し・・・
-
Homepage Manager
-
ウィルス!?
-
Critical Errorについて(パソ...
-
NVIDIA Corporation について
-
realsyncで「"は整数ではありま...
-
outlook express5の強制終了に...
-
メール入力中に改行するとエラ...
-
Mp3tag内のDiscogsサーバー接続...
-
突然OUTLOOK EXPURESSが応答し...
-
フリーソフト検索でレジストリ...
-
アプリケーションエラー表示
おすすめ情報