アルパカのメモ

「HRESULT からの例外:0x800AC472」のエラー

前提条件

  • Windows 10
  • PowerShell v5.1
  • Excelのバージョン:Office 365

概要

PowerShellからExcelを操作しているとき、特定の状況で下記のようなエラーが発生することがある。

"0" 個の引数を指定して "Quit" を呼び出し中に例外が発生しました: "HRESULT からの例外:0x800AC472"

私がこのエラーに直面したのはPowerShellをいじっていた時だが、COM経由でExcelを操作するもの (例えば .NET 系、さらには UiPath とか) でも出てくるエラーのようにみえる。

エラーの原因

端的にいうと、Excelがビジー状態で要求した操作ができないときに発生するらしい。

参考:

解決方法

エラーが出る処理をループで囲み、エラーが発生したらリトライする。

ただ、必ずしもエラーが出る箇所が根本原因ではないことがある。 私の場合、最初は $excel.Quit() でExcelを終了させるところでエラーが起きていたが、 本当の原因はブックをOneDriveで共有しているフォルダに作成していたことだった。 OneDrive の同期の処理と、Excelを開いたり編集したりする処理がぶつかっていたと思われる。 ローカルのフォルダにブックを作成するようにしたら、エラーは起きなくなった。