COMスクリプティングが貧弱
「ExcelファイルをHTMLファイルにコンバートするスクリプト」を作成しようと試みましたが、
Excelファイルのオープンに失敗してうまくいきません。
ExcelオブジェクトのWorkBooksプロパティを取得してもNullになってしまいます。
理由は、http://oka326.blogspot.com/2005/09/msh-new-object-com-is-fake.htmlにある通りのようです。
MSHの仕組み上、「COMで取得可能なプロパティを全て扱える」ようにはならないのかもしれません。
ExcelファイルをHTMLファイルにコンバートする(Beta2では動作しません)
param([string] $xlsFilePath) # Excelファイルをオープンする $excel = new-object -com Excel.Application $workbook = $excel.Workbooks.Open($xlsFilePath) #←WorkBooksがNullのためエラー # 出力するHTMLファイル名が存在する場合は削除する $htmlPath = [System.IO.Path]::ChangeExtension($xlsFilePath,".html") $filesPath = $htmlPath + ".files" remove-item $htmlPath -ea SilentlyContinue remove-item $filesPath -ea SilentlyContinue # ExcelファイルをHTMLファイルにコンバートする # Const xlHtml = 44 (&H2C) $workbook.SaveAs($htmlPath, 44) # HTMLファイルが出力されるまでウェイト while(test-path $htmlPath -eq $False) { start-sleep -m 100 } # Excelファイルをクローズし、Excelを終了する $workbook.Close $excel.Quit # オブジェクト破棄 $excel = $null $workbook = $null