- ベストアンサー
VBでプロンプトの終了を知るには?
はじめまして。現在VBの勉強中です。 ちょっと行き詰まっています。 よろしければ教えてください。 現在、VBでバッチをたたいてエクスポートするプログラムを作成しています。 エクスポートしている間(プロンプトが開いて処理をしている間)は、 VBを終了したくないのですが、以下のようなプログラムだと、 VBが先に終了してしまい、プロンプトだけが残されてしまいます。 Shell "C:\Test.bat", vbNormalFocus End プロンプトを非表示にしたいわけではなく、プロンプトが終了してから VBを終わらせたいのです。 何か方法があれば教えてください。 よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
下記のURLが参考になるかと思います。
その他の回答 (3)
- airgroove
- ベストアンサー率16% (1/6)
以下のような感じではいかがでしょう? Private Sub Form_Load() Dim i As Integer If Dir("C:\test.log") <> "" Then Kill "C:\test.log" For i = 0 To 10 Shell "C:\Test.bat > C:\test.log", vbNormalFocus If Dir("C:\test.log") <> "" Then Exit For DoEvents Loop End Sub for文は無限ループ防止用なので終了条件は適宜変更して下さい。
お礼
わざわざソースまで書いていただいて どうもありがとうございました! ちょっと上手くいかなかったのですが、 考え方はすごくシンプルでわかりやすかったです。 こういうのが自分で作れるようになりたいです。 ありがとうございした!
- name_mm_ok
- ベストアンサー率48% (12/25)
このURLを参考にしてはどうでしょう。
お礼
回答ありがとうございました! 少し難しかったですが、参考になりました。 ありがとうございました。
- siteuma
- ベストアンサー率28% (77/271)
VBでの処理を終了する前に、 バッチが実行中かを監視する処理を入れるとか・・・。 (Timerで監視してバッチが動作していなかったら処理を抜ける) むかーし、そんなのを作った記憶があります。 (VB離れてから大分経ってるんであんまり自信なし)
お礼
すばやい回答をありがとうございました。 そういう発想があるんですね! 勉強になりました。 ありがとうございました。
お礼
回答ありがとうございました。 そのまま使ったらうまくいきました。 理解できない部分もありましたが・・^^; どうもありがとうございました!