プロジェクトで使用するExcel操作用のPowerShellスクリプトが、バージョンの影響か、端末の違いか、私の環境でだけ動かなかった。
対処法を備忘録として残す。
エラーメッセージ
スクリプト実行時、以下のエラーメッセージが表示される。
Cannot find path 'C:\スクリプト実行場所\Microsoft.Office.Interop.Excel.dll'because it does not exist.
スクリプト内の以下行でエラーになっているらしい。
Add-Type -AssemblyName "Microsoft.Office.Interop.Excel"
PowerShell 5の場合、正常に実行できた。
7系で実行すると私はエラーになるが、他の端末ではできた人もいるので、原因は不明。
解決方法
パスが見つからないと言われているので、とりあえずMicrosoft.Office.Interop.Excel.dll をWindows内で探してみると、以下の4つが見つかった。
C:\Program Files\Microsoft Office\root\Office16\ADDINS\PowerPivot Excel Add-in\Microsoft.Office.Interop.Excel.dll
C:\Program Files\Microsoft Office\root\Office16\ADDINS\Microsoft Power Query for Excel Integrated\bin\Microsoft.Office.Interop.Excel.dll
C:\Program Files\Microsoft Office\root\Office16\ADDINS\PowerPivot Excel Add-inv16\Microsoft.Office.Interop.Excel.dll
C:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Excel\15.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Excel.dll
上から、スクリプト内のAdd-Type -AssemblyNameの該当箇所にdllファイルをパス指定してあげると、2つ目のdllファイルで無事動くようになった。
Add-Type -AssemblyName "C:\Program Files\Microsoft Office\root\Office16\ADDINS\Microsoft Power Query for Excel Integrated\bin\Microsoft.Office.Interop.Excel.dll"