分かりやすく、使いやすく。

別のVBScriptファイルを実行する方法

スポンサーリンク

VBScript のファイルから別の VBScript のファイルを読み込んで起動するには WScript.Shell オブジェクトの Run メソッドを使用します。

Run メソッドは別のVBScriptファイルを非同期で実行するか、同期して実行するかを第三引数で指定できます。

非同期で実行する場合は、別の VBScript ファイルを起動した後、呼び出し側の VBScript も並行して一緒に動作し続けます。

同期して実行した場合、別の VBScript ファイルを起動した後、そのスクリプトの処理が終了するまで呼び出し側は停止して完了を待ちます。

  1. 別の VBScript を実行する方法(非同期)
  2. 別の VBScript を実行する方法(同期)
  3. 引数を渡したり、戻り値を受け取る方法


別の VBScript を実行する方法(非同期)

次のサンプルコードでは、 main.vbs というファイルから別の VBScript ファイル(module.vbs)を読み込んで実行します。非同期で実行するため、module.vbs を呼び出した後も main.vbs は module.vbs の終了を待たずに動作し続けます。

main.vbs
1
2
3
4
5
6
7
8
9
10
11
12
Option Explicit
 
WScript.Echo "main.vbsを開始します。"
 
'起動用のオブジェクトを生成
Dim objWsh
Set objWsh = WScript.CreateObject("WScript.Shell")
 
'module.vbsを実行
objWsh.Run "module.vbs"
 
WScript.Echo "main.vbsを終了します。" 
module.vbs
1
2
3
4
5
6
7
8
Option Explicit
 
WScript.Echo "module.vbsを開始。"
 
'3秒間停止する
WScript.Sleep 3000
 
WScript.Echo "module.vbsを終了。" 

上記の main.vbs を実行すると、 module.vbs の終了を待たずに main.vbs の終了メッセージが表示されます。

別の VBScript を実行する方法(同期)

別の VBScript ファイルを同期して実行するには Run メソッドの第三引数に True を指定します。サンプルコードは次の通りです。

main.vbs
1
2
3
4
5
6
7
8
9
10
11
12
Option Explicit
 
WScript.Echo "main.vbsを開始します。"
 
'起動用のオブジェクトを生成
Dim objWsh
Set objWsh = WScript.CreateObject("WScript.Shell")
 
'module.vbsを実行
objWsh.Run "module.vbs",,True
 
WScript.Echo "main.vbsを終了します。" 
module.vbs
1
2
3
4
5
6
7
8
Option Explicit
 
WScript.Echo "module.vbsを開始。"
 
'3秒間停止する
WScript.Sleep 3000
 
WScript.Echo "module.vbsを終了。" 

上記の main.vbs を実行すると、 module.vbs の終了メッセージが表示された後に main.vbs の終了メッセージが表示されます。

引数を渡したり、戻り値を受け取る方法

別のスクリプトを実行する際に、引数を渡して起動したり、起動したスクリプトから戻り値を受け取る方法については以下を参照してください。

スポンサーリンク
スポンサーリンク