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も見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
特定のエクセルファイルが止まってしまう
Excel(エクセル)
-
「Columns(A:C")」の列文字を数字にして表記したい"
Excel(エクセル)
-
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
-
4
Excel マクロ VBA プロシージャが大きすぎます のエラー対処方法
Visual Basic(VBA)
-
5
エクセルでエラーが出て困っています。
Excel(エクセル)
-
6
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
7
エクセルからアクセスのプロシージャーを実行させるには?
Excel(エクセル)
-
8
エクセルVBA 「On Error GoTo 0」について
Excel(エクセル)
-
9
メッセージボックスを前面に表示させるには?
Visual Basic(VBA)
-
10
Excel実行時エラー-2146959355?
IT・エンジニアリング
-
11
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
12
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
-
13
ExcelVBAでPDFを閉じるソース
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
モジュールのページ違反ってな...
-
音楽CDを焼いている途中で、”転...
-
内部サーバーエラー(500)
-
ファイルメーカーによる勤務時...
-
MAC OS 10.5.8のパソコンのsafa...
-
(応答なし)と出る場合の対処...
-
解凍後の.zipファイルは消して...
-
拡張子をtxtからdatに
-
Ziを開けるには
-
Excelで「同じ名前のファイルが...
-
エクセルのVBAでクリップボード...
-
“.vbs”のファイルが実行できない
-
zipファイルを解凍しないで中身...
-
ダウンロード時のexeやlzhファ...
-
XLMファイルをメモ帳で開く...
-
誤ってAdobe ReaderでZIPファ...
-
ファイルを閉じても開いている...
-
ワードのズーム変更が保存でき...
-
アプリケーションエラー0xc0000...
-
アプリケーション ハングの回...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA「別のプログラムでOLEの操...
-
Susieで画像が表示されません
-
Critical Errorについて(パソ...
-
ファイルメーカーによる勤務時...
-
Mp3tag内のDiscogsサーバー接続...
-
CPU使用率が100%になる
-
オーディオサービスが実行され...
-
Microsoft Visual C++ Runtime ...
-
POWER2GOを起動するとエラーが...
-
ソフトのバグなのか、マシンの...
-
(応答なし)と出る場合の対処...
-
IEの調子が悪い!
-
realsyncで「"は整数ではありま...
-
Roxio Creator操作中のRuntime ...
-
インターネットに接続すると変...
-
フォトショップの強制終了
-
内部サーバーエラー(500)
-
IEが強制終了される
-
DiskX Tools9について
-
MAC OS 10.5.8のパソコンのsafa...
おすすめ情報