ExcelVBAについての質問です。コマンドプロンプトで実行するプログラムをCで作成しました(これをXXX.exeとします)。このプログラムは計算が終了した後で、その結果のファイルを作成します(これをYYY.txtとします)。このプログラムを操作し、結果を表にして出力するために、ExcelVBAでshellを使って以下のようなプログラムを作成しました。
shell("XXX.exe")
call Output
Outputでは、XXX.exeが作成したファイルYYY.txtからデータを読み込んでシートに結果を出力するのですが、うまくファイルを読み込みません。多分、shellにより実行したXXX.exeが終了する前にOutputが呼ばれているのだと思うのですが、もしそうだとしたらどのような解決方法があるのでしょうか。よろしくお願いします。
WinXp、Excel2000です
No.2ベストアンサー
- 回答日時:
VBならこういう風にするのですが...
ExcelVBAでは確認していませんが。
http://www.ops.dti.ne.jp/~allergy/vb/vbvba.html# …
参考URL:http://www.ops.dti.ne.jp/~allergy/vb/vbvba.html# …
教えていただいた方法をExcelVBAで試してみましたが、shellで実行したプログラムの終了を待つことができ、思い通りの処理を行うことができました。ありがとうございました。
No.3
- 回答日時:
こんにちは。
TimerとDirでYYY.txtの作成を待つとか。。
Sub Test()
Dim i As Integer, Start
Shell("XXX.exe")
i = 0
Do While i < 10 And Dir("C:\YYY.txt") = ""
Start = Timer
Do While Timer < Start + 0.5
DoEvents
Loop
i = i + 1
Loop
If i = 10 Then Exit Sub
Call Output
End Sub
でもきちんとプロセス終了を待つのが正でしょうね。^^;
↓
http://www2.moug.net/cgi-bin/technic.cgi?exvba+T …
参考URL:http://www2.moug.net/cgi-bin/technic.cgi?exvba+T …
XXX.exeですが、2回目以降の実行では同じファイル名に上書きして結果を出力するので、Dirを使った方法では以前の結果を読み込むことになってしまいます。教えていただいた参考URLの方法はXXX.exeの終了を待つことができるのでうまくいきました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(パソコン・周辺機器) チャレンジタッチ3 改造 アプリインストールできない 1 2022/07/01 14:43
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- Visual Basic(VBA) VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません 1 2022/06/06 22:04
- その他(IT・Webサービス) EXCELVBAでシートを他のブックにコピーする命令を出すと毎回存在しないシート名の問合わせがある 1 2022/05/07 15:12
- UNIX・Linux bash のファイルの読み込み方についてご質問 3 2023/05/15 20:40
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- C言語・C++・C# exeファイルが作れない(windows10) 6 2022/08/13 08:47
- Excel(エクセル) EXCELVBAでシートを他のブックにコピーする命令を出すと毎回存在しないシート名の問合わせがある 2 2022/05/07 17:16
- Visual Basic(VBA) Vba UserFormを前面に出す方法を教えてください 1 2023/08/17 11:08
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access クエリ実行が急に非常に...
-
LINK : fatal error LNK1104に...
-
batからexeを起動した際の戻り...
-
OLE又はDDEを使うVISUAL BESIC...
-
VBでメモ帳やペイントを呼び出...
-
c/c++ ビルドしたにもかかわら...
-
64bit環境で32bitのodbc参照
-
ファイル名の先頭が数字だと駄...
-
JavaScriptでコマンドプ...
-
アプリケーションとソースコー...
-
VbscriptにてTeraterm マクロを...
-
jarファイル実行時の環境変数の...
-
ミニゲーム作成。
-
VB6で、C言語の(argv,argc)み...
-
exeファイルで実行できない
-
デスクトップにショートカット...
-
コマンドプロンプトで外のexeや...
-
Visual C++からMATLABを呼び出...
-
WScript.Echo と msgbox
-
batからexeを実行し戻り値を受...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access クエリ実行が急に非常に...
-
OLE又はDDEを使うVISUAL BESIC...
-
VC++から引数付きexeファイルの...
-
xismoについてです!開こうとす...
-
LINK : fatal error LNK1104に...
-
JavaScriptでコマンドプ...
-
VBAでMP3を鳴らしたい
-
c/c++ ビルドしたにもかかわら...
-
コンパイル ./aと./a.out の違い
-
WScript.Echo と msgbox
-
64bit環境で32bitのodbc参照
-
VBAでEXEファイルを動かす方法...
-
ローカルのHTMLからexeファイル...
-
VB6.0で作ったプロジェクトが起...
-
batからexeを実行し戻り値を受...
-
VC++での外部プログラムの実行
-
VBフォームアプリケーションに...
-
jarファイル実行時の環境変数の...
-
jarファイルとjava.exeの関連付...
-
デスクトップにショートカット...
おすすめ情報