Office アーキテクチャの移行後の COM エラーと .NET エラー
現象
Microsoft Office アーキテクチャを 32 ビットから 64 ビットに移行すると、COM アプリケーションまたは.NET Framework クライアントが使用されている場合にエラーが発生します。 これらの可能性のあるエラーには、次のものが含まれますが、これらに限定されません。
TYPE_E_CANTLOADLIBRARY
TYPE_E_LIBNOTREGISTERED
TYPE_E_ELEMENTNOTFOUND
エラーは、通常、COM アプリケーションまたは .NET クライアントが 32 ビット プロセスとして実行されている場合に発生します。
例
これらのエラーは、次のコードが 86 ビット PowerShell で実行されるときに発生する可能性があります。
$xl = New-Object -ComObject Excel.Application
$xl.Visible = $True
原因
エラーは、移行によって作成された孤立したレジストリ サブキーによって発生します。
解決方法
この問題を解決するには、次のいずれかの方法を使用します。
方法 1: 孤立したサブキーを自動的に削除する
孤立したサブキーを検出して削除するには、次の GitHub の場所からこのスクリプトを実行します。
方法 2: 孤立したサブキーを手動で削除する
手順 1 の PowerShell スクリプトで孤立したサブキーが削除されない場合は、孤立したエントリを手動でチェックすることもできます。 影響を受けるデバイスには、次の例のような孤立したサブキーが含まれている可能性があります。
HKEY_CLASSES_ROOT\WOW6432Node\TypeLib\GUID\1.9\0\Win32
注: この例では、 GUID はサブキーに固有の文字列です。
サブキーには、プログラム ファイル (x86) ファイル パスに存在しない Office 実行可能ファイルを指す値があります。 例:
C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE
また、64 ビットプログラム ファイルの正しい場所を指す隣接するサブキーも存在する必要があります。