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 の場所からこのスクリプトを実行します。

Office TypeLib 修復

方法 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 ビットプログラム ファイルの正しい場所を指す隣接するサブキーも存在する必要があります。