|
しろうと さん、かみちゃんさん、おはようございます。
>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から表示させます。
|
|