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