VB6.0 + Windows 2003環境でのShell関数の使用について

このQ&Aのポイント
  • VB6.0を利用してプログラムを作成していますが、Windows 2003環境でShell関数を利用してexeファイルを起動する際に問題が発生しています。
  • Windows XPでは正常に起動するexeファイルが、Windows 2003では起動しない現象が発生しています。
  • エラーログによると、VBRuntimeエラーが発生しており、実行時エラー'91'が表示されています。VBRuntimeのバージョンは6.0.97.82です。
回答を見る
  • ベストアンサー

VB6.0 + Windows 2003環境下でのShell関数の使用

現在、VB6.0を利用してプログラムを作成しています。 プログラム中からShell関数を利用してexeファイルを起動しようとしているのですが、exeファイルが起動しません。 実行環境OSがWindowsXPの場合は正常に起動するのですが、Windows2003で同じように実行したさい、exeファイルが起動しないのです。 イベントビューアのアプリケーションログを調べたところ、VBRuntimeエラーが発生していました。 エラー内容は、「実行時エラー'91'オブジェクト変数または With ブロック変数が設定されていません。」です。 VBRuntimeのバージョンは6.0.97.82です。 何か原因・解決策が分かる方いましたら ご協力お願いします。

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

  • ベストアンサー
  • process9
  • ベストアンサー率29% (81/272)
回答No.1

環境の違いが出てるだけじゃないですか? VBのランタイムDLL以外のDLLやOCXを使っているのでは? [プロジェクト]-[参照設定]でチェックの入っているものの場所 (下に表示されている)にあるファイルが DllやOCXが環境(WindowsXP,Windows2003共に) に存在するか調べてみてください。 たぶん何かが欠けてると思いますよ。

関連するQ&A

  • VBのshellについて。

    すみません。教えてください。 環境OS:winXP ソフト:VB6.0 sp5 内容:shellを利用してbatファイルをキックさせようとしていますがうまくいかないのです。 --VBソース-- Str = "C:\program file\SOFT\test.bat" & "/w" nR = shell(Str,1) -- batファイルの中身-- @echo dir %1 > "C:\Program File\SOFT\log.txt" 以上のデータなのですが、EXEを作成し、Shellを起動するとエラーが帰ります。 確認したところ、windows2000では問題ないのですが、XPではProgram Fileのスペースが問題で、エラーになってしまうのです。 教えていただきたいのは、 1.本当にXPではスペースのあるディレクトリ名はエラーになるのかということ。 2.もしエラーになるのであれば、対応策。 の上記の2点を教えてくださいませ。 いろいろ試し、探しているのですが、なかなか見つからず困っています。 XPのみできないっていうのも半信半疑だし・・・・ お願いします。

  • shell関数について

    毎度、お世話になっています。 現在、C言語で書いた複数のプログラムをBATファイルで処理するように記述しています。VBでその制御を行っているのですが、VBの処理手順として子フォーム(textあり)にデータを書きこんで、ボタンを押すとshellでbatファイルを起動し、バッチファイルの結果として、あるディレクトリにresult.txtが作成され、VBで他の子フォームに読みとらせようとしているのですが、shellだと、実行の終了を待たずに次にいってしまうので、そのバッチファイルの実行処理が終わらず、result.txtの内容を読み込むことができません。 待つようにするにはどうすればよいのでしょうか? ちなみにVBは一週間前にはじめて、自分でも調べてなんとか作ろうとしたのですが、時間がないため、ここに質問させていただきました。なるべく簡単なアルゴリズムで、よろしくお願いします。 VBのプロセス    テキストにデータを書き込む      ↓     ボタン   →        テキストの内容を*.txtとして保存                        ↓                      バッチファイル起動    ↓(ここで右の実行を待たない     ↓     ので読み込むことができない)   C言語で書かれたプログラム実行                        ↓ result.txtを    ←        結果としてresult.txtが出来上がる 読み込んで表示     

  • 実行時エラーについて

    お世話になっています。教えて下さい。 VBで作ったプログラムです。 デバッグ時には何の問題もなく、実行可能(完全コンパイル後に実行)で、コンパイルも問題なく通りますが、EXEにして実行すると、以下のエラーが出ます。 実行時エラー:'91' object変数、またはwithブロック変数が設定されていません。 どなたか、原因に心当たりがある方、いらっしゃったら教えて下さい。 よろしくお願いします。

  • VB6のWScript.Shellについて

    VB6のWScript.Shellで、他のVB6プログラムを起動する時の戻り値について教えてください。 AというVBプログラムからBというVBプログラムを起動するシステムがあります。 Bというプログラムで取得した値をAに返す方法はありますでしょうか? Aのソースは以下の通りです。 --------------------------------------------- sub test() dim objWshShell set objWshShell = Wscript.CreateObject("WScript.Shell") objWshShell.Run "C:\B.exe" & " " & hikisu1 & " " & hikisu2 , 1, wait End Function ---------------------------------------------- objWshShell.Runの戻り値はtrueまたはfalseのみのようです。 B.exeからtrue、false以外の値を取得する方法はありますか? また、やり方はobjWshShell.Runでなくてもよいです。 よろしくお願いします。

  • Shell関数?

    いつもお世話になってます。 XPでMicrosoft Visual Basic 2008 Express Editionを使ってます。 A.exeとB.exeを作りました。 Aを実行→OKボタンを押す→Bが実行される というのを作ったんですが、 <Aのプログラム> Private Sub Button1_Click(ByVal sender As System.Object,   ByVal e As System.EventArgs) Handles Button1.Click  Shell("C:\B.exe", AppWinStyle.NormalFocus)  Me.Close() End Sub を実行するとBが二度(?)実行されて(途中で止まってるような・・・) 「別のプロセスで使用されているため、プロセスはファイル"C:\B.exe"にアクセルできません。」 となります。 ちなみにB.exeはPC起動時は常に表示されるようにつくりました。 説明が足りないかもしれませんが解決しなくて困ってます。 どうしたら解決するか教えてください。

  • Shellの使い方について

    VBを最近はじめたのですが、Shellがうまくいかず、困っています。 下記のような内容で、MS-DOS上で動作するプログラムをShellで呼び出していますが、ファイルが見つからないというエラーが出てしまいます。(<D:\kakasi\401.txt:No such file or directory) com1 = "kakasi.exe " + param + " <" + lbl_open_file + " > " + lbl_save_file retval = Shell(com1, vbNormalFocus) kakasi.exeには、パスが通してありますので、lbl_open_fileやlbl_save_fileのファイルが見つからないと思われます。 実行時のcom1の値は、kakasi.exe -Jk -Hk -Kk <D:\kakasi\401.txt > D:\kakasi\401.txt1 になっていて、DOSプロンプトから手入力、実行ではうまくいきます。 何が問題なのか分かる方、教えてください。 よろしくお願いします。

  • ActiveX → VB を起動するとCreateObjectできない。

    初めまして。 2003Server+IIS6.0の環境でASP内のActiveXからShell関数でvbのexeを実行させる処理を作成しております。 サーバーから直接exeを実行させると正常に動くのですが、Web上からasp→ActiveX→exeを起動させるとテキストに書き込む処理はできるのですが、「CreateObject」文で「ActiveX コンポーネントはオブジェクトを作成できません」というエラーが返ります。 VB内でなぜ「CreateObject」が出来ないのかご存知の方はいますでしょうか。 宜しくお願いいたします。

  • Windows7でのVB6 ImageCombo

    お世話になります Windows7 Pro でVB6.0を使用して開発しています ImageComboBoxで初期選択処理が動作せず困っています。。。 ソース:  ImageCombo.ComboItems(2).SELECTED = True このあとSelectedItem.Indexの値をイミディエイトから確認すると    実行時エラー”91”  オブジェクト変数またはWithブロック変数が設定されていません  となってしまいます(LockプロパティはFalseです) WindowsXPのPCで確認すると 上記処理は正しく通ります Windows7だからでしょうか。。。 何かご存知の方いらっしゃいましたらご教授頂けると助かります 宜しくお願いします

  • VB6.0から起動したexeファイルを終了するとエラーが発生して困っています

    VB6.0(OSはWindowsXP)中からShell関数を利用してexeファイルを起動したのですが、そのexeファイルを終了すると決まってアプリケーションエラーが発生します。これを直接かショートカットで実行して終了するとエラーは出ません。どなたか考えられる原因や解決策をご存じの方、教えて頂けませんでしょうか?よろしくお願い致します。

  • VBからExcelが起動しません

    Excelファイルを開くプログラムをVBで作成したのですが 1つのパソコンだけ実行時エラー5が発生してExcelを起動できません どなたかお助けください プログラムはこんなかんじです WKPATH = "D:\Program Files\Microsoft Office\Office\EXCEL.EXE " & " c:\a.xls" exl = Shell(WKPATH, 1) ちなみにエラーが発生するパソコンはNT4.0sp6です