web-dev-qa-db-ja.com

Excel VBAを介してPowerShellスクリプトを実行する方法

特定の条件が満たされた場合に、Excel VBAマクロを使用してPowerShellスクリプトを起動しようとしています。コードの実行時にコードでエラーが発生せず、エラーなしでWindowsエクスプローラーウィンドウからPowerShellスクリプトを手動で実行できます。ただし、以下のVBAコードを実行すると、PowerShellが実行されず、理由がわかりません。

Dim x as Variant
If rs.RecordCount = 0 Then
    x = Shell("POWERSHELL.exe " & "H:\MyFolder\MyFile.ps1", 1)
End If

実行時エラーは発生していませんが、PowerShellスクリプトが実際には実行されていないため、VBAコードに問題があるかどうかはわかりません

[〜#〜] update [〜#〜]:余分な引用符を使用すると、コマンドウィンドウにポップアップ表示されるエラーメッセージを確認できますが、それでもスペースに問題があります余分な引用。スペースを含まない別のファイルパスにスクリプトを移動しましたが、スクリプトの実行が無効になっているというエラーが表示されます。これはもはやコードベースの問題ではないようです。皆さん、ありがとうございました!

4
Meghan

ファイルパスにスペースがある場合は、引用符で囲む必要があります。

x = Shell("POWERSHELL.exe -noexit " & _
           """H:\Operations\REPORTS\Reports2018\Balance Sheet\SLmarginJE.ps1""", 1) 
6
Tim Williams