症状
Microsoft Office アーキテクチャを 32 ビットから 64 ビットに移行すると、COM アプリケーションまたは .NET Framework クライアントを使用するとエラーが発生します。 次のようなエラーが考えられますが、これらに限定されません。
ライブラリの読み込みに失敗しました (TYPE_E_CANTLOADLIBRARY)
タイプ_E_LIBが登録されていません
TYPE_E_ELEMENTが見つかりません
通常、エラーは、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 はサブキーに固有の文字列です。
サブキーには、Program Files (x86) ファイル パスに存在しない Office 実行可能ファイルを指す値があります。 例えば次が挙げられます。
C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE
また、適切な 64 ビット プログラム ファイルの場所を指す隣接するサブキーも存在する必要があります。