【VBScript】別のVBScriptファイルを実行する


この記事はプロモーションを含みます。

VBScript

ホーム > VBScript 逆引きリファレンス

VBScriptから、別のVBScriptファイルを呼び出す方法を解説しています。
また、同期/非同期それぞれの呼び出し方についても記載しています。

まずは、同期呼び出しのサンプルになります。
実行すると、下記の順番でメッセージが表示されます。
①メイン処理開始。> ②サブ処理開始。> ③サブ処理終了。> ④メイン処理終了。

main.vbs

Option Explicit

MsgBox("メイン処理開始。")

' WSHオブジェクトの作成
Dim ws
Set ws = CreateObject("WScript.Shell")

' 別のVBSを実行
ws.Run "function.vbs", , True

' WSHオブジェクトの破棄
Set ws = Nothing

MsgBox("メイン処理終了。")

function.vbs

Option Explicit

MsgBox("サブ処理開始。")

' 5秒間停止
WScript.Sleep 5000

MsgBox("サブ処理終了。")

次に、非同期呼び出しのサンプルになります。
実行すると、下記の順番でメッセージが表示されます。
①メイン処理開始。> ②サブ処理開始。> ③メイン処理終了。> ④サブ処理終了。
同期が取れていないため、[function.vbs]にある処理待ちを待たずに、メイン処理が終了しました。

main.vbs

Option Explicit

MsgBox("メイン処理開始。")

' WSHオブジェクトの作成
Dim ws
Set ws = CreateObject("WScript.Shell")

' 別のVBSを実行
ws.Run "function.vbs"

' WSHオブジェクトの破棄
Set ws = Nothing

MsgBox("メイン処理終了。")

function.vbs

Option Explicit

MsgBox("サブ処理開始。")

' 5秒間停止
WScript.Sleep 5000

MsgBox("サブ処理終了。")

同期、非同期の切り替え方は下記になります。
赤字の「, , True」の有無により切り替えを行うことが可能です。
サンプルでは、「別のVBSを実行」とコメントがある「ws.Run “function.vbs”」になります。

同期:WSHオブジェクト.Run “実行するVBScriptファイル”, , True
非同期:WSHオブジェクト.Run “実行するVBScriptファイル”

記事は以上になります。慣れないうちに非同期実行は想定外の処理が起きたりと難しいと思いますので、基本的には同期実行をおすすめします。

コメント

タイトルとURLをコピーしました