• 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

[Access VBA] 任意のコマンドを実行するで書いた、Shell関数を使ったVBAでの任意のコマンドの実行方法は非同期なものだと知りました。

Shell関数は任意のコマンドを実行し、コマンドの終了を待たずにShell関数の呼び出し以降のステートメントが実行されていきます。

それではあまりうれしくないときがあるので、同期実行する方法を以下に示します。

この方法を使うと、呼び出したコマンドが終了してから、以降のステートメントが実行されていきます。

以下、ソースコード。

   1  Dim strShellCommand As String     ' シェルコマンド
   2  Dim objWSH As Object              ' WSH
   3  
   4  strShellCommand = " "    ' 実行したいコマンド
   5      
   6  ' WSHを使ってコマンドを実行する
   7  Set objWSH = CreateObject("WScript.Shell")
   8  objWSH.Run strShellCommand, vbNormalFocus, True ' 第3引数がTrueなら、同期実行
   9  Set objWSH = Nothing

ソースを見るとなんとなくわかるかもしれませんが、WSHを使います。

第1引数は、コマンドを入れてあげます。

第2引数は、WindowStyleを入れてあげます。ここに入る値は、Shell関数のと同じです。

第3引数は、同期実行ならTrue、非同期実行ならFalseを入れてあげます。

See Also

posted by Png y_tsuda on Fri 9 Jan 2009 at 18:58

Comments:

or Preview
Social Bookmarks
  • Delicious
  • B_entry1202
  • Clip_16_12_w
Services from s21g
twpro(ツイプロ)
Twitterプロフィールを快適検索
地価2009
土地の値段を調べてみよう
MyRestaurant
自分だけのレストラン手帳
Formula
ブログに数式を埋め込める数式コミュニティ