Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


59489 / 76732 ←次へ | 前へ→

【21931】Re:waitpid 関数の使用方法?
発言  ichinose  - 05/2/4(金) 8:03 -

引用なし
パスワード
   しろうと さん、かみちゃんさん、おはようございます。

>1.あるVBAのプログラムの実行途中で、
>2.他のアプリケーションをSHELLコマンドを使用して実行した後に、
>3.再度、VBAのプログラムに戻り、続きを実行する
>ようなプログラムを作成中です。
>
>3.では、2.の処理で作成されたデータを使用するため、
>2.の動作が終わった後に、自動的に、3.が実行されるようにしたいと思っています。
>
>尚、2.の他のアプリケーションは、処理が完了すると、自動的に終了します。
>
>2.の処理には時間がかかるため、2.と3.の間には、
>
>Application.Wait Now + TimeValue("00:00:05") 
>
>等のコマンドを入力していますが、必ずしも、5秒以内で終わるわけではなく、
>また、この数値を大きくしてしまいますと、無駄に、作業が止まってしまうことに
>なります。
>
>2.のアプリケーションが終了したら、3.が実行されるようなプログラムにするため
>には、どうしたら良いでしょうか?
>
>どなたかお分かりの人がいらっしゃいましたら、教えていただけないでしょうか?
>
>(waitpid 関数を使用するとよいらしいのですが、具体的な使用法が分からないで、
> おります。もし、この関数を使用して解決可能な場合は、お手数をお掛け致します
> が、例などを挙げていただけると幸いです。)
>
>以上、よろしくお願い致します。


WSHを使用してもできそうですよ!!
'============================================
Sub test()
  Set WSHShell = CreateObject("Wscript.Shell")
  WSHShell.Run "notepad.exe", 1, True
  Open "D:\My Documents\memotest.txt" For Input As #1
  Do Until EOF(1)
   Line Input #1, txt$
   Cells(idx + 1, 1).Value = txt
   idx = idx + 1
   Loop
  Close #1
End Sub

上記のコードは、メモ帳を呼び出していますが、
適当なデータを入力した後、Openステートメントで記述されている
ファイル名で保存した後、終了して下さい。
メモ帳で作成した内容をセルA1から表示させます。
0 hits

【21909】waitpid 関数の使用方法? しろうと 05/2/3(木) 12:02 質問
【21910】Re:外部プログラムの終了を待って処理を続... かみちゃん 05/2/3(木) 12:34 回答
【21931】Re:waitpid 関数の使用方法? ichinose 05/2/4(金) 8:03 発言
【21933】Re:waitpid 関数の使用方法? しろうと 05/2/4(金) 9:44 お礼

59489 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free