[[20201101042733]] 『VBAからPowershellを動かして、結果をEXcelへ抽出』(キキララ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『VBAからPowershellを動かして、結果をEXcelへ抽出する方法』(キキララ)

VBAから、Powershellを起動させるコードは下記だと思いますが、

この結果をExcelへ書き込みがしたいです。
お知恵をお貸しください

 Sub
 Test_Sample_Miniature()

Dim

 WSH As
Object
Dim
 cmdstr As
String
Dim
 Result Set
 WSH = CreateObject("WScript.Shell")
 cmdstr = Chr(34)
 & "& {**************}"
 & Chr(34)
 Result = WSH.Run("PowerShell -NoExit -nologo -ExecutionPolicy Bypass -Command "
 & cmdstr, 4,
True)
Set
 WSH = Nothing
End
Sub

< 使用 Excel:unknown、使用 OS:unknown >


 肝心のコマンドの中身がわからないですが
 Runではく、Execで実行してStdOutプロパティを使ってはどうですか?
https://www.bugbugnow.net/2018/06/wshrunexec.html

 標準出力がないないコマンドだと、なにも返ってきません
 直近スレッドだと
[[20200928170114]]
 ???さんのコードが勉強になります

(稲葉) 2020/11/01(日) 05:31


 追加です。
 
https://it-engineer-info.com/language/powershell/1903/
 こちらを使ってはどうでしょうか。
 動作しました。
 
 # そんなにコードを分かち書きされると動作しませんよ。
(γ) 2020/11/01(日) 06:29

 ああ、失礼しました。
 指摘頂いているとおり、
 同じサイトのExecを使った例のほうが適切でしたか。

 「PowerShell VBAでPowerShellを実行して結果を取得する(Exec編)」
https://it-engineer-info.com/language/powershell/1899/

 動作確認はしていませんので、あしからず。
(γ) 2020/11/01(日) 06:58

Execを使った例では、ずっと処理待ちになるようなので、
処理待ち部分はやめて、
ExecPowerShell = CreateObject("Wscript.shell").Exec(..略...).StdOut.ReadAll
とつなげてしまえばよいと思われます。
(γ) 2020/11/01(日) 07:17

ちなみに、RunとExec等のそれぞれの得失については、
https://www.atmarkit.co.jp/ait/articles/0407/08/news101.html
の、1ページから3ページまでが、
もう少し詳しいので、参考になる点があるかもしれません。
# 私は今までここを紹介することが多かったですかね。

(γ) 2020/11/01(日) 15:53


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.