【VBA】コマンドプロンプトのコマンドを実行する

VBAから
 ・コマンドプロンプトのコマンドを実行
できます!

ここでは
 ・コマンドプロンプト画面は非表示
 ・コマンドを同期実行
するサンプルコードを記載します!

PR

VBAコード

ここでは例として
 ・コマンド「mkdir C:\Users\user\Desktop\folder001」を
 ・コマンドプロンプト画面は非表示で
 ・同期実行
します。

ここでいう「同期実行」とは、「コマンドの処理完了後にVBAへ制御が返ってくるように実行する」という意味です。

'変数の宣言を必須
Option Explicit

Sub excePromptCmd()

    Dim command As String
    Dim wsh As Object
    
    '実行するコマンドを指定
    command = "mkdir C:\Users\user\Desktop\folder001"
    
    Set wsh = CreateObject("WScript.Shell")
    
    'コマンドを同期実行
    wsh.Run "%ComSpec% /c " & command, vbHide, True
    
    '後片付け
    Set wsh = Nothing
    
End Sub

「wsh.Run」の引数について補足します。

「%ComSpec%」・・・コマンドプロンプトの実行ファイルのパスを示します。
「/c」・・・・・・・・Cドライブを示します。Cドライブ以外の指定も可能です。
「vbHide」・・・・・・コマンドプロンプト画面を非表示にします。
「True」・・・・・・・コマンドを同期実行します。

PR

実行結果

コマンドプロンプトのコマンドを実行できました。
※デスクトップ配下にフォルダ「folder001」が作成されました。

実行結果
実行結果
PR

参考①

上記のVBAコードで使用した「WScript.Shell」の「Run」についての詳細は、公式サイトをご確認ください。

PR

参考②

VBAでバッチファイルを実行することもできます。

詳細は以下の記事をご確認ください。

PR

参考③

VBAでコマンドプロンプトの実行結果を取得することもできます。

詳細は以下の記事をご確認ください。

PR

参考④

VBAでPowerShellファイルを実行することもできます。

詳細は以下の記事をご確認ください。

PR

参考⑤

VBAでVBScriptファイルを実行することもできます。

詳細は以下の記事をご確認ください。


タイトルとURLをコピーしました