質問: エクセルのVBAをつかってC++で作ったexeファイルを起動させるプログラムを書きたいと思いますが、うまくいきません。 プログラムは下記です。 Sub Macro1() Shell ("C:\test.exe") End Sub エラーは出ないのですが、計算をしません。 ・VBEの参照設定のmicrosft scripting runtimeはクリックいれてます。 ・test.exe自体はクリックすると起動して計算します。 もし、対応策をご存知なら教えていただければ助かります。 よろしくお願いします。
回答: > 計算は一分くらい掛かるものなので、それが原因かなあ、とも思ってます。 確認です。 > 計算をしません。 と判断した理由は何なんでしょう? #どういうコードで「計算していない」ことを確認しましたか? Shell関数は、「非同期処理」なので、呼び出したプログラムの終了を待ってはくれません。 例えば、C++プログラムが計算終了時(つまり起動の1分後)に、結果をファイル出力する仕組みになっていて、 VBプログラムが、Shell実行直後に、そのファイルの有無をチェックしていいたりすると、 ファイルは存在しないことになりますが・・・