[Access VBA] 任意のコマンドを実行するで書いた、Shell関数を使ったVBAでの任意のコマンドの実行方法は非同期なものだと知りました。
Shell関数は任意のコマンドを実行し、コマンドの終了を待たずにShell関数の呼び出し以降のステートメントが実行されていきます。
それではあまりうれしくないときがあるので、同期実行する方法を以下に示します。
この方法を使うと、呼び出したコマンドが終了してから、以降のステートメントが実行されていきます。
以下、ソースコード。
1 Dim strShellCommand As String ' シェルコマンド 2 Dim objWSH As Object ' WSH 3 4 strShellCo mmand = " " ' 実行したいコマンド 5 6 ' WSHを使ってコマンドを実行する 7 Set objWSH = CreateObje ct("WScript.Sh ell") 8 objWSH.Run strShellCo mmand, vbNormalFo cus, True ' 第3引数がTrueなら、同期実行 9 Set objWSH = Nothing
ソースを見るとなんとなくわかるかもしれませんが、WSHを使います。
第1引数は、コマンドを入れてあげます。
第2引数は、WindowStyl
第3引数は、同期実行ならTrue、非同期実行ならFalseを入れてあげます。
See Also
posted by
y_tsuda
on Fri 9 Jan 2009
at 18:58