重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

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

A 回答 (2件)

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

それによって、WshShellが使えるようになるはずです。
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/05/07 22:57

Shellは単に実行するだけですので、戻り値を使ってどうのこうのといった作業には適していません。

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

参考URL:http://www.microsoft.com/japan/msdn/scripting/de …

この回答への補足

どうしようもない質問で申し訳ないですが、時間の余裕がなくて、お願いします。
参考URLの以下の実行例をACCEESSのVBAのコードに貼り付けて実行してみましたが、2行目で”オブジェクトが必要です”とエラーになります。

Dim oShell   
Set oShell = WScript.CreateObject("WSCript.shell")
oShell.Run "cmd /K CD C:\ & Dir"
Set oShell = Nothing

これだけじゃ駄目ですか?

補足日時:2003/05/02 12:05
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!