
VBAでコマンドプロンプトを実行した後に
ウインドウを閉じないで実行したいのですが
https://oshiete.goo.ne.jp/qa/8931913.html
このページを参考にして
Sub Sample_WShell01()
Dim ShellObj
Set ShellObj = CreateObject("WScript.Shell")
ShellObj.Run "%ComSpec% /c & pause", , True
Set ShellObj = Nothing
End Sub
を実行してみたのですが
一瞬でウインドウが閉じてしまいます。
どうすれば閉じずに実行できますでしょうか?
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
補足に対して、
ShellObj.Run で実行できるのは拡張子が exe、com、bat、cmd だけです。pauseはpause.exeじゃなくて「コマンドプロンプト」cmd.exeの組み込みコマンドです。
従って、pauseを引数で指定した cmd.exe を起動する必要があります。%ComSpec% には cmd.exe がセットされています。
ShellObj.Run "cmd /c pause",,True
でも同じです。
No.2
- 回答日時:
そのページを読んで何故
ShellObj.Run "%ComSpec% /c & pause", , True
になるのか。
ShellObj.Run "%ComSpec% /c" & "pause", , True
でしょう。
&は文字列連結なので、もちろん
ShellObj.Run "%ComSpec% /c pause", , True
でいいです。

No.1
- 回答日時:
ShellObj.Run "%ComSpec% /c & pause", , Trueの行を
ShellObj.Run "%ComSpec%", , True
としてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
これってパソコンの最適化が完...
-
[teraterm] waitコマンドで停止...
-
VBscriptが起動しない?
-
複数のbatファイルを自動実行し...
-
「読み取りと実行」と「読み取...
-
エクセル フォルダの画像を画...
-
VBScriptでコマンドプロンプト...
-
大至急お願いします。Pythonの...
-
Windows System32 Security Hea...
-
VBA 既に開いているBookに継続...
-
.NETからストアドプロシージャ...
-
Excel(エクセル) VBA プロシー...
-
VBAでバッチファイルを1つ実行...
-
PDFファイルを開き、印刷し、閉...
-
シェルからCで作った実行ファイ...
-
ExcelのVBAが特定のPC上でのみ...
-
VBAのコマンドプロンプトでpaus...
-
ネットワーク名が見つかりません
-
COBOLのイニシャライズとバリュ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
[teraterm] waitコマンドで停止...
-
複数のbatファイルを自動実行し...
-
これってパソコンの最適化が完...
-
Windows System32 Security Hea...
-
「読み取りと実行」と「読み取...
-
バッチファイルの内容を表示さ...
-
VBscriptが起動しない?
-
exeファイルを実行するとコマン...
-
Access の VBA 実行中に他の操...
-
Excel(エクセル) VBA プロシー...
-
PDFファイルを開き、印刷し、閉...
-
ネットワーク名が見つかりません
-
pythonスクリプトを管理者権限...
-
エクセル フォルダの画像を画...
-
VBScriptでコマンドプロンプト...
-
Excel VBA ステップインが途中...
-
WSH.Run の処理内容をテキスト...
-
バッチファイルが不正終了して...
-
ExcelのVBAが特定のPC上でのみ...
おすすめ情報
ありがとうございます。
うまくいきました。
ちなみに、
ShellObj.Run " pause", , True
ではなく
ShellObj.Run "%ComSpec% /c pause", , True
のように
"%ComSpec% /c
を前に挟むのはどういう意味があるのでしょうか?