0

Excel VBA マクロに組み込む Powershell スクリプトがあります。この質問を参照してください: Powershell Regex: 複数のスペースのみをタブに置き換える

問題の Convert_To_Tab_Delimited.ps1 のコードは次のとおりです。

gc 'foo.txt'| % { $_ -replace '  +',"`t" } | set-content "<my path>\temp.txt"

「foo.txt」をVBA変数に渡す必要があります。基本的には、VBA のファイル選択ダイアログから取得されるパス文字列です。Powershell ファイルは、次のステートメントによって呼び出されます。

Shell(“powershell.exe -ExecutionPolicy Unrestricted <pathname>\Convert_To_Tab_Delimited.ps1″, 1)

呼び出された Powershell スクリプトに引数として文字列変数を渡す方法はありますか? これに関するご支援をいただければ幸いです。

4

1 に答える 1

0

スクリプトの先頭でパラメーターを定義するだけです。

param([string]$path)
$content = [IO.File]::ReadAllText($path)
# etc.

VBA では、パラメーターを渡す必要があります。

Shell("powershell.exe -ExecutionPolicy Unrestricted -File <pathname>\Convert_To_Tab_Delimited.ps1 -path """ & pathVariable & """", 1)
于 2013-06-11T01:41:28.113 に答える