Excel PowerShell Tool Version 1.0
Excel PowerShell Tool (=PS Tool) は、Excelから直接PowerShellを実行するアドインです。
Version 0.5 を公開してから頂いた幾つかのご意見と、個人的な趣味を加えて Version 1.0 を公開します。
ダウンロード↓↓↓
ExPSTool-1-0-0-1.zip (508.46 kb)
旧バージョン(=v0.5)は、PowerShellの出力をExcelに取り込むためのツールでしたが、
本バージョン(=v1.0)は、ExcelをPowerShellの実行環境とする事を目標に再設計しました。
大きな特徴としては、
・ 非同期実行
・ スクリプトの内包化
の2つが挙げられます。
非同期実行
非同期実行は、もともと PowerShell に備わっている機能ですが、v0.5では使用していませんでした。
しかし、本格的な実行環境を目指すためにはこれを外す訳には行きません!!
v0.5では、PowerShellの処理が終了してからデータを一気に出力していましたが、v1.0では、パイプデータを随時出力しています。
スクリプト実行中のExcel操作や、スクリプトの中断が可能になり、使い勝手が大きく向上しました。
ただし、実行速度はv0.5より落ちています。
PowerShell には監視用のコマンドレットが多数用意されていますが、それらを連続的に利用することは v0.5では困難でした。
v1.0ではパイプ上のデータを常に取得しているので、モニター系のシステムも簡単に構築できます。
スクリプトの内包化
Excelにはセル単位に「コメント」を添付する機能がありますが、このコメント部分にPowerShellスクリプトを記述します。
スクリプトファイルを用意する必要がないので、PowerShellをVBAマクロの様に使用する事が可能です。
↓↑
実行対象のコメントは、一行目が #@PSTOOL で開始されていることが条件で、ワークシート毎に一箇所だけ許可されています。
本格的なスクリプトは外部ファイルの方が優れていますが、簡単なシステムならコメント上のスクリプトでも十分と考えています。
※Excelのコメントは編集機能が貧弱なのです…
その他
v1.0 ではスクリプトの開発をサポートする機能が追加されています。また、DataTable の表示にも対応しました。
シリアライズされたデータの表示にもある程度対応してるので、リモートセッションや、ジョブ結果の表示も出来たりします。
・変数 $_Excel
PS Tool の PowerShell 環境では、変数 $_Excel に Excel.Application が自動的に設定されます。
$_Excel を利用すれば、実行中の Excel リソースに簡単にアクセスする事が可能です。
例えば、 $_Excel.Run() でVBAマクロを呼びします
・アドインAPI
PS Tool は Excel のアドインですが、アドインAPIとして幾つかのメソッドを用意しています。
・SetStartRange() 出力位置の指定(※v0.5では、開始時のアクティブセルが出力位置だった)
・OutWorksheet() Worksheet への直接出力。停止不可だが高速。
・GetCsvFromTable() Excel上のテーブルをImport-Csvと同様の形式に変換
・MsgBoxVBA() VBA互換MsgBox
・InputBoxVBA() VBA互換InputBox
・RunPSScript() PowerShellスクリプトの実行(※VBAからの呼び出し用)
これらのメソッドは、簡単な手続きで PowerShell から呼び出し可能になります。※上の図の「お呪い」部分
ダウンロードファイル中のサンプルには、v0.5 用に公開した幾つかの例を含め一つの Workbook にまとめてみました。
各ワークシートのスクリプトを参照すれば、PS Tool の使い方は理解できると思います。
PS Tool v1.0 によって、Excel と PowerShell の融合が大きく進んだ気がするので、皆さん是非ご利用ください。
ご意見等よろしくお願いします。