ExcelVBAからPowershellスクリプトを実行させたい | |
---|---|
[195427] ExcelVBAからPowershellスクリプトを実行させたい- ■親トピック/記事引用/メール受信=OFF■ □投稿者/ rico -(2022/12/02(18:49)) □U R L/ ExcelVBAからPowershellスクリプトを実行させたいのですが、ExcelからPowershellスクリプトに値を渡す方法が分かりません。 何時間も調べたのですが、たったこれだけのことが出来ずに時間がかかってしまって情けなくなります。 Powershellスクリプトの内容が入っているので、ここでの質問は場違いなのかな?けど、ここが大好きなので、ダメもとで質問させて下さい。 Powershellスクリプトをexecで実行させたいのですが、次のように書きました。 ********************************************* [VBA側で] mmm = (値) xxx = "C:\aaa.ps1" Set execObj = wsh.exec("powershell -NoProfile -ExecutionPolicy Unrestricted " & xxx) Result = execObj.stdOut.ReadAll ********************************************* [Powershellスクリプト側(aaa.ps1)で] Select-String -Path "D:\ggg.text" -Pattern (値) -Context 1,0 ********************************************* と書いています。 VBA側のmmmに入れた値をPowershellスクリプトの(値)の所に渡したいのですが、どのように記述すればよいのでしょうか。 値は1つしかないので、配列でなくてもよいのですが、Powershellスクリプトでは配列変数しか使えないと書いてあるサイトもあったような。 どなたかお分かりの方、ご教示の程宜しくお願い致します。 この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 |
[195428] Re[1]: ExcelVBAからPowershellスクリプトを実行させたい- ■記事引用/メール受信=OFF■ □投稿者/ 山田太郎 -(2022/12/03(10:33)) □U R L/ こんな感じでしょうか。。。 ********************************************* [VBA側で] mmm = (値) xxx = "C:\aaa.ps1" Set execObj = wsh.exec("powershell -NoProfile -ExecutionPolicy Unrestricted """ & xxx & """ """ & mmm & """") Result = execObj.stdOut.ReadAll ********************************************* [Powershellスクリプト側(aaa.ps1)で] Param( $arg1 ) Select-String -Path "D:\ggg.text" -Pattern $arg1 -Context 1,0 ********************************************* この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 |
[195429] Re[2]: ExcelVBAからPowershellスクリプトを実行させたい- ■ / 記事引用/メール受信=OFF■ □投稿者/ rico -(2022/12/03(12:27)) □U R L/ 山田太郎さん、やりました!ビンゴです! 思わずガッツポーズしてしまいました。 すごいじゃないですか!日本が勝ったときくらいうれしかったですね。 Unrestricted以下の並べ方は、どのサイトを見ても見つからなかったし、自力では到底無理でした。 長い時間、四苦八苦したんですけど、もっと早く質問すればよかった。 ここのサイトはPowershellもいけるじゃないですか。Pythonとかもいけるのかな? 教えて下さってどうもありがとう。感謝です。 |
このトピックに書きこむ |
---|