読者です 読者をやめる 読者になる 読者になる

COM を利用して Excel を開くときに COMException(-2147021892) が出る

COM

古いサードパーティー製の Excel 出力ライブラリが生成する ExceloBooks.Open(xls) しようとすると下記のエラーが出ることがある。

Exception:
  System.Runtime.InteropServices.COMException はハンドルされませんでした。
    ErrorCode=-2147021892
    HelpLink=xlmain11.chm
    HResult=-2147021892
    Message=このファイルから問題が検出されました。コンピューターを保護するため、ファイルは開かれません。
    Source=Microsoft Excel

生成される Excel が安全だと分かっていてどうしても開きたい場合、以下の手順を行う。
(Excel2010 の場合)

hosts ファイルの編集

  1. notepad.exe を管理者で開く
  2. C:¥Windows¥System32¥drivers¥etc¥hosts を編集、下記を追加
    192.168.0.1 example

Excel の設定

  1. ファイル -> オプション -> セキュリティセンター -> 「セキュリティセンターの設定」をクリック
  2. 信頼できる場所 -> 「プライベートネットワーク上にある信頼できる場所を許可する」をチェック
  3. 「新しい場所の追加」-> パスに「¥¥example¥」を入力
  4. 「この場所のサブフォルダーも信頼する」をチェック

「信頼できる場所」には IP アドレスを指定できないため、ホスト名でアクセスできるようにする必要がある。

参考:

英語のエラーメッセージ(参考):

Run-time error '-2147021892 (80070bbc)':

office has detected a problem with this file. 
To help protect your computer this file cannot be opened.