• ベストアンサー

VBでバッチ呼び出し

VB2008でボタン(btn1)をクリックすると、C:\abc.batを呼び出し、batに書かれている命令を実行させたいと思っています。 ネットで探したところ、VBAでは下記のURLにあるようにすればできるっぽいのはわかりました。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1320106183 Set objShell = WScript.CreateObject("WScript.Shell") objShell.Run "D:\test02.bat" ただ、VBではどのように実行すればよいかわかりません。ご教授お願いいたします。

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

  • ベストアンサー
  • samtomsan
  • ベストアンサー率55% (1060/1897)
回答No.1

下記に説明のある Process で実行できます。 http://dobon.net/vb/dotnet/process/openfile.html

mellow91
質問者

お礼

ありがとうございます!目的達成しました!!

関連するQ&A

  • VBAでネットワーク上のバッチジョブを実行したい

    クライアントPCのVBAからサーバなどのネットワーク上のバッチジョブを実行するにはどのようにすればよいでしょうか?   Dim WshShell Set WshShell = CreateObject("WScript.Shell") WshShell.Run "\\サーバ名\AAAAA\BAT\TEST.bat", , True MsgBox "終了!" Set WshShell = Nothing 上記を参考にしたのですが、どうもうまくいかないのです。 何かが足りないのですか?

  • VBScript(WScript)のバッチファイル実行

    お世話になります。 VBScriptで困っています。 ご存知の方、ご教示願えますでしょうか。 Windowsでバッチファイルを実行したときに、DOS画面(コマンドプロンプト)が一瞬パッて表示されるかと思います。 現在開発中のシステムで、プログラムからバッチファイルを自動で実行する処理を入れております。 通常ならばバッチファイルを実行した場合、DOS画面が表示されてしまいますが DOS画面を出さないようにプログラムを組んでいます。 つまり、VBScriptからバッチファイルを実行しております。 以下、VBScriptのソースを記載します。 Set objShell = WScript.CreateObject("WScript.Shell") fcresult = objShell.Run("C:\abc.bat", 0, True) wscript.quit fcresult 上記のVBSを実行すると、必然的に「abc.bat」が実行されます。 しかし、現在僕が使っている環境ですとDOS画面が表示されません(←これがやりたいこと) しかし、お客さんの環境で同じ様にVBSからバッチファイルを実行すると 「C:\WINDOWS\System32\CScript.exe」という名前でDOS画面が起動されてしまいます。 周りの環境でもVBSからバッチをたたくような処理を行ってみましたが、DOS画面が起動されず。。。 正直、再現が難しいため大変困っております。 お客さんの環境では100%再現されます。 全くもって原因がつかめておりません。 Windowsのセキュリティの設定でしょうか!? ご存知の方いらっしゃいましたら、知恵をお貸しください。 よろしくお願いいたします。

  • VBSでバッチを実行できません。

    C:\temp\test.batをVBSで実行しようとするのですが、 何度やっても実行されません。 想像ですが、c:\WINNT\System32\cmd.exeが動いている ようなのですが、肝心のC:\temp\test.batが動きません。 以下のように記述しました。 Dim WshShell Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run ("cmd /c c:\temp\test,0,True") WIN2K、IE6.0の環境です。 どこか記述に誤りでもあるのでしょうか? どうぞよろしくお願いいたします。

  • WSH動作しない!!(WScript.SleepとSendKeys?)

    WSHが動作しなくて困っています。 動作するコードとしないコードは次のとおりです。 いずれも@ITに掲載されているサンプルコードをそのままです。 動作しないコードについても,notepadの起動まではできます。 どうやら,sleepとsendkeysが動いてくれないようです。 <正常に動作するコード> Set objShell = WScript.CreateObject("WScript.Shell") WScript.Echo "メモ帳を起動します。" objShell.Run "notepad.exe" http://www.atmarkit.co.jp/fwin2k/operation/wsh03/wsh03_02.html <動作しないコード> Set objShell = WScript.CreateObject("WScript.Shell") objShell.Run "notepad.exe" WScript.Sleep 1000 objShell.SendKeys "hello" http://www.atmarkit.co.jp/fwin2k/operation/wsh05/wsh05_04.html ■動作環境 Win XP Pro IE 6.0 ちなみに,WSHファイルに対する実行権限はあります(フルコントロールです)。 以上なのですが,何か点検するべき事項などありましたらご教示ください。

  • VBSからのサーバサイドのEXEの実行

    こんにちはSHIRAOといいます。 WScript.Shellを使用してサーバにあるEXEファイルを 起動しようと思っているのですがどうもうまくいきません。WScript.Shellを使用する時に何か設定しなければならないことがあるのでしょうか? <script language="vbscript"> Function Window_OnLoad : Set objShell = WScript.CreateObject("WScript.Shell") objShell.Run "C:\WINDOWS\system32\notepad.exe" : End Function </script>

  • タスクスケジューラで表示されるアプリの最小化

    Windows10 office2016 excelマクロであるアプリ(A)を起動する上で、もともと何かしらのアプリ画面が表示されていると邪魔な場合があります。 なのでタスクスケジューラで表示されているアプリを最小化して (A)を起動する構成にしたいです. 下記は(A)を起動するマクロの部分 With CreateObject("Wscript.Shell") .Run "c:\work\kido.bat", 5 End With これを実行する前にbatファイル(close.bat)を起動して最小化したい With CreateObject("Wscript.Shell") .Run "c:\work\close.bat", 5 End With With CreateObject("Wscript.Shell") .Run "c:\work\kido.bat", 5 End With こんな構成のイメージかと思っています。 このclose.batの中身あるいは、マクロ文で可能なら、それでもかまいません。 よろしくお願いします。

  • vbsからbatを動かしたいです♪

    vbsからbatを動かしたいです♪ リモートでマシンを動かしたいのですが・・・。 動きません!なぜでしょう? どなたか助けてください、お願いします。 =============== Set shell = CreateObject("Wscript.Shell") shell.Run "\\(マシン名)\C$test\test.bat" set shell = nothing =============

  • VBSでファイルの自動保存

    vbs初心者です。自分なりに調べたのですが、うまくいかず、アドバスを願い致します。目的は、ファイルを自動保存したいのです。 以下のように記載して、最後にカレントデレクトリイに「test.txt」と名前をつけて保存させたいのです。よろしくお願い致します。 Set objShell = WScript.CreateObject("WScript.Shell") WScript.Sleep 1000 objShell.Run "notepad.exe" objShell.SendKeys "hello "  objShell.SendKeys "%{F4}" objShell.SendKeys "%y"  

  • WSHで他のバッチを呼びその終了を待つ方法

    WSHでプログラミングをしています。 WSHを使う理由はWin上から簡単にメールを送信できるのでとりあえず選択しました。 で、WSHのバッチから、普通のDOSコマンドで記述したバッチを呼んで、そのバッチの結果出力されたログファイルをWSHのバッチでメールに添付して送信したいなどと思っています。 今は var ws = WScript.CreateObject("Wscript.Shell"); ws.run("tmp.bat"); こんな感じで「tmp.bat」という名のDOSコマンドのバッチを呼び出しているのですが、このコマンドは命令発行したらその命令が終了するのを待たず次の命令に進んでしまうようです。 なので、ログ作成とメール送信のタイミングが合わない状態です。 処理待ちする方法を教えてください。よろしくお願いします。

  • 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でなくてもよいです。 よろしくお願いします。

専門家に質問してみよう