excel以外のスレッドでシェルウィンドウを実行する方法があるかどうかを知りたいですか?マルチスレッドのWScript.Shell.run
アイデアは、シェルを起動するときに凍結しないことです。例えば
:あなたの助けを
Dim objShell
Set objShell = WScript.CreateObject ("WScript.shell")
objShell.run "cmd /K CD C:\ & Dir"
Set objShell = Nothing
おかげ
excel以外のスレッドでシェルウィンドウを実行する方法があるかどうかを知りたいですか?マルチスレッドのWScript.Shell.run
アイデアは、シェルを起動するときに凍結しないことです。例えば
:あなたの助けを
Dim objShell
Set objShell = WScript.CreateObject ("WScript.shell")
objShell.run "cmd /K CD C:\ & Dir"
Set objShell = Nothing
おかげ
私はPraktikに同意し、同意しません。 Excelで実際のマルチスレッドアプリケーションを作成できないため、私は同意します。私はあなたが別のスクリプトを実行するためのトリックを使用することができるので、同意しない。 "Script.vbs"という名前のvbsスクリプトがあるとします。次に、taskId = Shell("wscript Script.vbs parms")
のようにsthをコードすることができます。スクリプトはあなたのVBAプログラムから独立して実行されます。しかし、それはあなたが望むものではないかもしれません。
答えはNOだろう、あなたはExcelで、マルチスレッドアプリケーションを作成することはできません。
ただし、Application.ScreenUpdating = False
を使用すると、現在のExcelブックをロックできます。
あなたが役立ちますのでApplication.ScreenUpdating = True
希望のようなコードの末尾に戻ってそれを有効にすることを確認してください!
こんにちは、これはスクリプトの実行には関係しません。このコマンドでは、Excelでディスプレイをリフレッシュしないようにすることしかできません。 – Coolpix
こんにちは。あなたはvbaスクリプトからシェルを起動することを意味しますか?私たちはすでにそれを行うことができます(例えば私の元の投稿)。しかし、コマンド "objShell.run"を起動すると、cmd/K CD C:\&Dir ""私はExcelのコントロールを取り戻すために最後を待たなければならないと思います。 – Coolpix
はい、vbaスクリプトからシェルを起動しますが、objShell.runでは起動しません。あなたが言ったように、それで待たなければならないからです。あなたがシェルを使用する場合は、私はあなたが戻ってコントロールをほぼ永遠に取得し、Script.vbsが終了するのを待つ必要はないと示唆しました。 – Storax
申し訳ありませんが、あなたのアプローチをテストしただけで動作します。あなたはほとんどすぐにコントロールを取り戻すでしょう。 – Storax