
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【最大10000ポイント当たる!!】dポイント・Amazonギフト券・マイルなど色々交換できるgooポイントが【質問投稿】で当たる!!
教えて!goo 質問投稿キャンペーン
-
Shell関数からバッチファイルを起動後に、バッチファイルが終了するまで待ちたい。
Visual Basic(VBA)
-
ファイルを処理中に次の処理に移ってしまうようなのですが、、
Visual Basic(VBA)
-
VB6.0 SHELLで起動したプログラムを終了さしたいのですが
Visual Basic(VBA)
-
4
VBAでこんなことできますか?
PowerPoint(パワーポイント)
-
5
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
6
【Excel VBA】ネットワーク上の共有フォルダにあるExcelを開く
Excel(エクセル)
-
7
エクセル VBA ユーザーフォームを閉じる
Excel(エクセル)
-
8
vbaから他のアプリを終了
Visual Basic(VBA)
-
9
VBA zipファイルの作成
その他(プログラミング・Web制作)
-
10
VBAで既に開いている別アプリケーションのオブジェクトを得る
Visual Basic(VBA)
-
11
EXCELマクロのEXE化
Visual Basic(VBA)
-
12
Shell関数内で変数を使うことについて
Excel(エクセル)
-
13
ウィンドウのタイトルからプロセス取得
Visual Basic(VBA)
-
14
VBAでメモ帳にコピペをしたいのですが…
PowerPoint(パワーポイント)
-
15
VBでShell○なのにShellExecute×
Visual Basic(VBA)
-
16
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
17
Exel VBA 別ブックから該当データを検索し、必要なデータを取得する方法について
Visual Basic(VBA)
-
18
VBAにてメッセージボックスを最前面に表示させる
その他(プログラミング・Web制作)
-
19
エクセル マクロで指定フォルダを開く
Excel(エクセル)
-
20
VBAでの一時停止と再開の方法
その他(プログラミング・Web制作)
関連するQ&A
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
「標準の文字数を使う」設定に...
-
5
エクセルを立ち上げるとBook2が...
-
6
VBAのShellの同期的実行
-
7
エクセルで電卓表示
-
8
office for windows10(無料)...
-
9
Microsoft Office2013 プロダク...
-
10
Office Personal と Office...
-
11
OfficeでOEM版が否かを判別...
-
12
Officeは何台までインストール...
-
13
OFFICE 2007 プロダクトキー...
-
14
エクセルVBAで行削除時にエラー...
-
15
wordで開きたいファイルがOpenO...
-
16
CD-ROMドライブないPC...
-
17
Microsoft Access 2013 Runtime...
-
18
ダウンロード後の「開く」「保...
-
19
Microsoft Office2019とAccess2...
-
20
記帳くんが開かない!
おすすめ情報