【VBA】PowerShellファイルを同期実行する

ここではVBAから
 ・PowerShellファイルを
 ・同期実行する
方法を記載します!

PR

PowerShellのコード

ここでは例として、
 ・「PowerShellからのメッセージ出力です!」というメッセージを出力する
 ・「test.ps1」を作成
します。

test.ps1の内容
test.ps1の内容
$ws = new-object -comobject wscript.shell
$result = $ws.popup("PowerShellからのメッセージ出力です!")
PR

VBAのコード

ここでは例として、
 ・上記で作成したPowerShellのファイル「test.ps1」を
 ・同期実行
します。
※ここでは作成したPowerShellのファイル「test.ps1」をデスクトップ配下に配置しています。

Option Explicit

Sub execPsFile()
    
    Dim psFile As String
    Dim wsh As Object
    
    '実行するPowerShellのファイルを指定
    psFile = "C:\Users\user\Desktop\test.ps1"
    
    Set wsh = CreateObject("WScript.Shell")
    
    'PowerShellを実行
    '0   :PowerShell画面を非表示
    'True:同期
    wsh.Run "powershell -NoProfile -ExecutionPolicy Unrestricted " & psFile, 0, True
    
    '後片付け
    Set wsh = Nothing
    
End Sub

Run」メソッドの3つ目の引数に「0」を指定することで、PowerShell画面を表示にできます。
※「1(規定値)」を指定すると表示になります。

Run」メソッドの4つ目の引数に「True」を指定することで、同期実行になります。
※「False(規定値)」を指定すると同期実行になります。

ここでいう「同期実行」とは、
 ・PowerShellファイルの処理完了後にVBAへ制御が返ってくるように実行
という意味です。
※PowerShellの処理が完了するまでは、VBAの処理は停止して先に進みません。

PR

実行結果

PowerShellファイルを同期実行できました。

実行結果
実行結果
PR

参考①

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

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

PR

参考②

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

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

PR

参考③

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

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

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