- ベストアンサー
Shell関数について
知恵を貸してください。 今Shell関数を使ってあるアプリケーションを実行しています。実行失敗したら警告をだすとのアクションを取りたいです。 ところでShell関数のヘルプを見ると実行失敗したら’0’を返すとのことですが、 実際、実行するアプリケーションのパスを変えるなどにして、テストしてみたらその結果は(Shell関数の戻り値)は’0’ではないです。 これはどういうことでしょうか? どなたか教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
参考の構文はVBScriptを使ったWSHなので、参照設定で「Microsoft Script Runtime」(scrrun.dllというファイル)を参照する必要があると思います。それによって、WshShellが使えるようになるはずです。
その他の回答 (1)
- kazuyoshiAbe
- ベストアンサー率63% (7/11)
Shellは単に実行するだけですので、戻り値を使ってどうのこうのといった作業には適していません。Windowsスクリプトテクノロジーに含まれるWshShellオブジェクトのRun関数を使ってみてはいかがでしょうか。これでしたら、プログラムの実行をWaitさせることができますし、アプリケーションから返されるエラーコードを取得できます。くわしくはMSDNとか下記のWebサイトをご覧ください。 なお、エラーコード0というのは単にプログラムを実行して制御を返す、ということではないかと思います。
補足
どうしようもない質問で申し訳ないですが、時間の余裕がなくて、お願いします。 参考URLの以下の実行例をACCEESSのVBAのコードに貼り付けて実行してみましたが、2行目で”オブジェクトが必要です”とエラーになります。 Dim oShell Set oShell = WScript.CreateObject("WSCript.shell") oShell.Run "cmd /K CD C:\ & Dir" Set oShell = Nothing これだけじゃ駄目ですか?
お礼
ありがとうございました、解決しました。 参照設定でパスワードを要求されいろいろさまよっていましたが・・・