
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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel-VBAの「しばらくお待ちください」のダイアログが自動的に閉じない 2 2023/05/24 15:31
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) エクセルVBAのコードで質問です。 下のコードはJ16の文字列をB3を起点とする範囲から探して、見つ 5 2023/04/07 11:07
- Visual Basic(VBA) 実行時エラー´5854´ 文字列型パラメーターが長すぎます。 3 2023/06/08 21:17
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Visual Basic(VBA) VBAでファイルを開くプログラムがエラーです 2 2023/02/21 16:56
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
このQ&Aを見た人はこんなQ&Aも見ています
-
コマンドプロンプト実行後に画面を閉じない方法
Visual Basic(VBA)
-
VBSの処理中一旦処理を止めて再開させたい。
Visual Basic(VBA)
-
VBScriptでコマンドプロンプトウィンドウを開いたままにしたいです
その他(プログラミング・Web制作)
-
-
4
excel vbaから実行するexe実行の黒い画面の非表示
Visual Basic(VBA)
-
5
VBAのExecメソッドで画面を非表示にして実行する方法
Visual Basic(VBA)
-
6
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
7
exeファイルを実行するとコマンドプロンプトがすぐに閉じる
C言語・C++・C#
-
8
VBプログラムから「管理者として実行」したい
Visual Basic(VBA)
-
9
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
「読み取りと実行」と「読み取...
-
[teraterm] waitコマンドで停止...
-
複数のbatファイルを自動実行し...
-
VBscriptが起動しない?
-
exeファイルを実行するとコマン...
-
バッチファイルの内容を表示さ...
-
これってパソコンの最適化が完...
-
PDFファイルを開き、印刷し、閉...
-
Software Distribution folder ...
-
【ACCESS】マクロの「アプリケ...
-
Excelのセルの内容をコマンドプ...
-
ネットワークの割当をnet useコ...
-
Windows System32 Security Hea...
-
ホームページのリンクからプロ...
-
Excel(エクセル) VBA プロシー...
-
Access の VBA 実行中に他の操...
-
gccのプロファイラで時間が取得...
-
ASPが動かない
-
EXIF情報を出力するマクロ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
[teraterm] waitコマンドで停止...
-
バッチファイルの内容を表示さ...
-
exeファイルを実行するとコマン...
-
VBscriptが起動しない?
-
これってパソコンの最適化が完...
-
「読み取りと実行」と「読み取...
-
複数のbatファイルを自動実行し...
-
Windows System32 Security Hea...
-
ネットワーク名が見つかりません
-
エクセル フォルダの画像を画...
-
Excel(エクセル) VBA プロシー...
-
PDFファイルを開き、印刷し、閉...
-
Access の VBA 実行中に他の操...
-
バッチファイルが不正終了して...
-
VScodeのエラー解決法 Pythonの...
-
VBScriptでコマンドプロンプト...
-
pythonスクリプトを管理者権限...
-
VB.NETでのDOSコマンドを実行に...
-
batからexeを実行し戻り値を受...
おすすめ情報
ありがとうございます。
うまくいきました。
ちなみに、
ShellObj.Run " pause", , True
ではなく
ShellObj.Run "%ComSpec% /c pause", , True
のように
"%ComSpec% /c
を前に挟むのはどういう意味があるのでしょうか?