VBAでよくつかうGetObject() は PowerShell では GetActiveObject()になる。
GetActiveObject() で起動中のExceclをつかむことで、対象のExcelファイル、この例ではA1セルにPowerShellから値書き込みができる。
この仕組みのメリットは、Excel VBAの並列処理に使えそうなこと。
Excecl Hero が以前作成したマルチスレッドの実装では、VBA(ActiveSheet)に対して子プロセス( VB script)が結果を書きこむことで実現していた。
ということは、上記パターンと同様、VBA + PowerShell に落とし込める。
子プロセスがPowershellであれば、VScode 、PowerShell ISE等でメンテが簡単。
なんかよさそうな予感。
コメント