前提・実現したいこと
Excelブックなどが格納されている変数を参照しようとしたときに
そのcomオブジェクトが閉じられていたり、解放されていたりすると
当然ですがエラーになってしまいます。
エラーが出てからの確認ではなく
エラーを出さずにCOM オブジェクト が RCW から分割されていないか確認したいのですが
可能でしょうか?
--追記--
Excelは完全にpowershellで操作するわけではなく
Excel業務の補助操作のために利用します。
そのためExcelのオープンやクローズは手動で行います。
発生している問題・エラーメッセージ
基になる RCW から分割された COM オブジェクトを使うことはできません。
該当のソースコード
powershell
1 2function _New_Excel(){ 3#新規プロセスのExcelを取得する 4 [outputtype([Microsoft.Office.Interop.Excel.ApplicationClass])] 5 $Excel = New-Object -ComObject Excel.Application 6 return $Excel 7} 8 9Function _ComQuit($Com){ 10#指定Comオブジェクトの破棄 11 while ($([System.Runtime.InteropServices.Marshal]::FinalReleaseComObject($Com)) -gt 0){} 12 Remove-Variable Com 13} 14 15$App = _New_Excel 16$App.Visible = $true 17_ComQuit $App 18 19 20$App.Visible #エラー出さずにつながっているか確認したい
試したこと
Try
を使えば確認はできるのですが、
エラーは 出来れば想定外のものだけを拾いたいです。
powershell
1try 2{ 3 $null = $App.Visible 4 Write-host "切れてない" 5} 6catch 7{ 8 Write-host "切れてる" 9}
補足情報(FW/ツールのバージョンなど)
Win10
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/09 11:40
2018/12/11 01:19 編集