【VBA】Power Shellのコマンドレットの実行結果を取得する

VBAから
Power Shellのコマンドレットを実行して…

Power Shellのコマンドレットの実行結果
Power Shellのコマンドレットの実行結果


その結果を
VBAで取得できます!

Power Shellのコマンドレットの実行結果を取得
Power Shellのコマンドレットの実行結果を取得
PR

VBAコード

ここでは例として、
 ・コマンドレット「(Invoke-WebRequest -Uri ‘https://www.yahoo.co.jp/’).StatusCode」を実行して
 ・結果を取得
します。
※上記のコマンドレットは「指定したURLのHTTPステータスコードを取得するコマンドレット」です。
※例として「YahooのHTTPステータスコードを取得します。

'変数の宣言を必須
Option Explicit

Sub sample()
    
    Const START_ROW As Long = 2
    
    Dim psCommand As String
    Dim wsh As Object
    Dim execObj As Object
    Dim psCommandResult As String
    
    '実行するPower Shellのコマンドレットを指定
    psCommand = "(Invoke-WebRequest -Uri 'https://www.yahoo.co.jp/').StatusCode"

    Set wsh = CreateObject("WScript.Shell")
    
    'Power Shellのコマンドレットを実行
    Set execObj = wsh.exec("powershell -NoProfile -ExecutionPolicy Unrestricted " & psCommand)

    'Power Shellのコマンドレットの実行結果を取得
    psCommandResult = execObj.stdOut.ReadAll
    
    'Power Shellのコマンドレットの実行結果を表示
    MsgBox psCommandResult
    
    '後片付け
    Set execObj = Nothing
    Set wsh = Nothing
    
End Sub

「WScript.Shell」の「exec」メソッドでコマンドを実行します(19行目)。

PR

実行結果

Power Shellの実行結果を取得できました。

実行結果
実行結果
PR

参考①

「Power Shellファイルを実行」することもできます。

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

PR

参考②

上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。

●「WScript.Shell」の「exec」メソッド


●「WScript.Shell」の「stdOut」プロパティ


●Invoke-WebRequestコマンドレット

PR

参考③

HTTPステータスコードの詳細は、以下をご確認ください。