質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

WSH

WSH(Windows Script Host)とは、Windows上でテキストファイルに記述したJavaScriptやVBScriptなどのスクリプトを実行するホスト環境のことです。COMを通じたレジストリ操作やWMIへのアクセスが可能で、複雑な処理も行うことができます。

Q&A

解決済

1回答

1155閲覧

VBS Execメソッドでのアプリケーションの起動について

mozuq

総合スコア15

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

WSH

WSH(Windows Script Host)とは、Windows上でテキストファイルに記述したJavaScriptやVBScriptなどのスクリプトを実行するホスト環境のことです。COMを通じたレジストリ操作やWMIへのアクセスが可能で、複雑な処理も行うことができます。

0グッド

1クリップ

投稿2018/01/15 02:35

編集2018/01/15 02:39

###前提・実現したいこと
VBSで、txtファイルを読み込んだ上で特定のソフトを起動し、ソフトが終了したら注意メッセージを出したいと思っております。
このとき、txtファイル、特定のソフトともに変数に格納しています。
txtファイル、特定のソフトともに変数にせずフルパスで書けば、txtファイルを読み込んだ上で問題なく起動するのですが、変数にするとtxtファイルを読み込んでくれません。
変数での書き方(ソースコードの下から4行目)をご教示いただけないでしょうか。

なお、txtファイルが一定の頻度で変わる、ソフトは使用者によって存在場所が違うため、変数に格納しなければなりません。

###該当のソースコード

vbs

1Option Explicit 2Dim objShell, ObjFolder, objFiles, ea, filename, FSO, EXEPROGRAM, oExec 3 4'txtファイルのあるフォルダ名 5Const TRGTFOLDER ="C:\aaa\bbb\" 6 7Set objShell = WScript.CreateObject("Wscript.Shell") 8Set objFSO = CreateObject("Scripting.FileSystemObject") 9 10'ソフトのパスを変数に格納 11If objFSO.FileExists("C:\Program Files\ccc\ddd\abc.EXE") = True then 12 EXEPROGRAM = "C:\Program Files\ccc\ddd\abc.EXE" 13Else 14 If objFSO.FileExists("C:\Program Files (x86)\ccc\ddd\abc.EXE") = True then 15 EXEPROGRAM ="C:\Program Files (x86)\ccc\ddd\abc.EXE" 16 Else 17 MsgBox"abc.exeが存在しません" 18 WScript.Quit 19 End if 20End if 21 22Set ObjFolder = objFSO.getFolder(TRGTFOLDER) 23Set objFiles = ObjFolder.Files 24 25'txtファイル名の取得 26For Each ea In objFiles 27If LCase(Right(ea,4))=".txt" Then 28 filename= ea 29 MsgBox(ea) & vbCrLf & vbCrLf & "このファイルを読み込んでabc 30.exeを起動します" 31 Exit For 32End If 33Next 34 35If Len(filename)>0 Then 36    '↓★★★ここの書き方でつまづいています!★これだと起動しません★★★ 37 Set oExec = objShell.Exec(EXEPROGRAM filename) 38Else 39 MsgBox "ファイルは見つかりません。",16 40End If

###試したこと
課題に対してアプローチしたことを記載してください

###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

EXEPROGRAMのアプリにfilenameをパラメーターとして与えて起動できればいいんですよね?
アプリ名 パラメーターという文字列が生成できれば良いので、下記のようにすればいけると思います。

VBS

1Set oExec = objShell.Exec(EXEPROGRAM & " " & filename)

投稿2018/01/15 02:49

ttyp03

総合スコア16998

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mozuq

2018/01/15 02:59

ありがとうございます! うまくできました! 自分では全く思いつかなかったので、本当に助かりました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問