• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PCによって動く物と動かないものがあります。)

PCによって動く物と動かない物がある VB初心者の問題

このQ&Aのポイント
  • VB初心者がWin2003Sarver+SQL2000+VB.Net2008の組合せで作成したプログラムで、特定のPCで動作しない問題が発生しています。
  • 自分のPCでは問題なく動作するが、他のPCではファイルが見つからないエラーが発生し、プログラムが正常に実行されません。
  • JITデバッグの設定やコンパイル設定に問題がある可能性があるため、詳細な環境設定やエラーメッセージを確認する必要があります。

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

  • ベストアンサー
  • taro_y
  • ベストアンサー率65% (17/26)
回答No.1

"C:\VB\稟議書\稟議書0.exe" もしくは "D:\VB\稟議書\稟議書0.exe" がそのPCにないんじゃないですか?

10071007
質問者

お礼

taro_y さんありがとうございます。 念のため確認しました。 C:\VB\稟議書\稟議書0.exeは あります。 プログラムも下記のように書き直しましたが、同様の結果です。 Dim Ret As Long Ret = Shell("C:\VB\稟議書\稟議書0.exe", vbNormalFocus) 不思議なのはWin7でもエラーになるPCとうまく出来るPCがあることです。 続けておねがいいいたします。

その他の回答 (2)

  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.3

もともとセキュリティ面はどんどん厳しくなってるし、 Vista 以降は UAC なんて面倒なものまで導入されてる から、人間の目で見てファイルがあったところで プログラムから参照できない場合もあるでしょう。 ただ、そんな事より、プログラムとして大問題なのが、 フォルダの確認だけで、あるかどうか保証の無い ファイルを起動しているところです。 過去、ファイルがあるといいつつ全角半角の違いや 小さなケアレスミスを行なってきた質問者が星の 数ほど存在します。特に、こんなプログラムコードを 見せられては信用できませんので、自分でログファイル を出力し、プログラムから何ができて何が出来ていない のか確実に把握して、その情報を出して下さい。 検証用のテストコードと結果をセットで出して下さい。

10071007
質問者

お礼

MARU4812 さん chie65535 さん taro_y さん 大変大変失礼しました。 MARU4812 さん のかかれた事を考え 次の様に書換ました。 Dim Ret As Long If IO.File.Exists("C:\VB\稟議書\稟議書0.exe") = True Then MsgBox("C:\VB\稟議書\稟議書0.exeはあります。") Ret = Shell("C:\VB\稟議書\稟議書0.exe", vbNormalFocus) Exit Sub End If If IO.File.Exists("D:\VB\稟議書\稟議書0.exe") = True Then MsgBox("D:\VB\稟議書\稟議書0.exeはあります。") Ret = Shell("D:\VB\稟議書\稟議書0.exe", vbNormalFocus) Exit Sub End If MsgBox("AAA") つまりファイルを調べ見つからなかったら AAAが出るようにしました。 そしたら AAAが出てしまいました。 ので、フォルダーも含め全て 書き直しました。 動きました。 誠に申し訳ありませんでした。 これに懲りず又、アドバイスください。

回答No.2

稟議書0.exeが、C:\VB\稟議書\にも、D:\VB\稟議書\にも無いのでしょう。 プログラムは 「C:\VB\稟議書\と言うフォルダが存在するならば、C:\VB\稟議書\稟議書0.exeを実行せよ、さもなくば(C:\VB\稟議書\と言うフォルダが存在しないならば)D:\VB\稟議書\稟議書0.exeを実行せよ」 と言うプログラムになっています。 簡単にいうと「CにあればCから起動、無ければ(Dにあると決め打ちで、Dにあるか確認しないで)Dから起動」になってます。 なので「CにもDにも無い」と言う状況だと、Dにあると思い込んでShell関数が呼ばれ「実行しようとしたファイルが無い」ってエラーが出ます。 C:\VB\稟議書\かD:\VB\稟議書\のどちらかに稟議書0.exeが無いと動かないので、存在するか確認して下さい。

10071007
質問者

お礼

chie65535 さんありがとうございます。 念のため確認しました。 C:\VB\稟議書\稟議書0.exeは あります。 プログラムも下記のように書き直しましたが、同様の結果です。 Dim Ret As Long Ret = Shell("C:\VB\稟議書\稟議書0.exe", vbNormalFocus) 不思議なのはWin7でもエラーになるPCとうまく出来るPCがあることです。 続けておねがいいいたします。

関連するQ&A