VBScript から VBScript を作成する
こんにちは。
仕事の自動化にやりがいと達成感を感じるガッくんです。
この記事の目次
目的
リンクの記事で VBScript から VBScript を実行する事に成功しました。
VBScript から VBScript を同期実行して戻り値を取得する - 解析エンジニアの自動化 blog
VBScript から別のVBScript が実行出来ると VBScript をたくさん作って、後から同期をとったり、機能の追加が簡単に行えたり、かなりプログラミングの幅が広がる基本スキルですが、 Script ファイルが増えてしまい、管理がめんどくさくなることがあります。
なので、 VBScript から別の VBScript を作成する VBScript を作成します。
これで、 VBScript が1つで良くなります。
関数
ソースコード
ForReading = 1 ' OpenTextFile 引数用変数
ForWriting = 2 ' OpenTextFile 引数用変数
ForAppending = 8 ' OpenTextFile 引数用変数
' プログラム作成用配列① 配列の先頭は VBScript ファイル名
PGM1 = Array( _
"Sample2.vbs", _
"msg = ""これは Sample2.vbs です。""", _
"MsgBox msg", _
"WScript.Quit(101) ' 戻り値" _
)
' プログラム作成用配列② 配列の先頭は VBScript ファイル名
PGM2 = Array( _
"Sample3.vbs", _
"msg = ""これは Sample3.vbs です。""", _
"MsgBox msg", _
"WScript.Quit(102) ' 戻り値" _
)
Call VBSMaker(PGM1)
Call VBSMaker(PGM2)
Set objWsh = WScript.CreateObject("WScript.Shell")
' Sample2.vbs を実行
ret2 = objWsh.Run("Sample2.vbs", , True)
' Sample3.vbs を実行
ret3 = objWsh.Run("Sample3.vbs", , True)
msg = "これは Sample1.vbs です。"
msg = msg & vbcrlf & _
"ret2 = " & ret2 & vbcrlf & _
"ret3 = " & ret3
MsgBox msg
Set objWsh = Nothing
Sub VBSMaker(arrPGM())
With CreateObject("Scripting.FileSystemObject").OpenTextFile(arrPGM(0), ForWriting, True)
for i = LBound(arrPGM) + 1 to UBound(arrPGM)
.WriteLine arrPGM(i)
next
.Close
End With
End Sub
使い方
上のソースコードの VBScript ファイル(Sample1.vbs)をダブルクリックすると、『Sample2.vbs』、『Sample3.vbs』という VBScript ファイルを作成します。そして、『Sample2.vbs』、『Sample3.vbs』を実行して、戻り値を取得します。
さらに、リンクの記事の図4 〜図6 と同じメッセージを表示します。
VBScript から VBScript を同期実行して戻り値を取得する - 解析エンジニアの自動化 blog
以上