• ベストアンサー

Shell関数について

知恵を貸してください。 今Shell関数を使ってあるアプリケーションを実行しています。実行失敗したら警告をだすとのアクションを取りたいです。 ところでShell関数のヘルプを見ると実行失敗したら’0’を返すとのことですが、 実際、実行するアプリケーションのパスを変えるなどにして、テストしてみたらその結果は(Shell関数の戻り値)は’0’ではないです。 これはどういうことでしょうか? どなたか教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

参考の構文はVBScriptを使ったWSHなので、参照設定で「Microsoft Script Runtime」(scrrun.dllというファイル)を参照する必要があると思います。それによって、WshShellが使えるようになるはずです。

mousemimi
質問者

お礼

ありがとうございました、解決しました。 参照設定でパスワードを要求されいろいろさまよっていましたが・・・

その他の回答 (1)

回答No.1

Shellは単に実行するだけですので、戻り値を使ってどうのこうのといった作業には適していません。Windowsスクリプトテクノロジーに含まれるWshShellオブジェクトのRun関数を使ってみてはいかがでしょうか。これでしたら、プログラムの実行をWaitさせることができますし、アプリケーションから返されるエラーコードを取得できます。くわしくはMSDNとか下記のWebサイトをご覧ください。 なお、エラーコード0というのは単にプログラムを実行して制御を返す、ということではないかと思います。

参考URL:
http://www.microsoft.com/japan/msdn/scripting/default.asp
mousemimi
質問者

補足

どうしようもない質問で申し訳ないですが、時間の余裕がなくて、お願いします。 参考URLの以下の実行例をACCEESSのVBAのコードに貼り付けて実行してみましたが、2行目で”オブジェクトが必要です”とエラーになります。 Dim oShell    Set oShell = WScript.CreateObject("WSCript.shell") oShell.Run "cmd /K CD C:\ & Dir" Set oShell = Nothing これだけじゃ駄目ですか?

関連するQ&A