トルネード

毛利のメモ書き

Interop.Outlook.Application タイプ ライブラリ/DLL の読み込みエラー

WindowsOutlookのメール送信などコントロールする場合

Interop.Microsoft.Office.Interop.Outlook.dll というCOMを使います

下記のようにCOMは Excel VBA などから利用できます

Excel → 開発 → [ツール|参照設定]

この Outlook COMの 実態は、 わたしの環境では

C:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Outlook\15.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Outlook.dll

↑ここにありました

当然 COMなので 他のディレクトリにコピーしても機能しません

VBAなどで 下記のように書くとOutlookが使えるようになります

Dim o1 As Outlook.Application
Set o1 = New Outlook.Application

上記コードをVBA実行し

下記↓のエラーが出る場合

Unable to cast COM object of type 
 to interface type 'Microsoft.Office.Interop.Outlook.Application'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{00063001-0000-0000-C000-000000000046}' failed due to the following error: タイプ ライブラリ/DLL の読み込みエラーです。 (0x80029C4A (TYPE E CANTLOADLIBRARY)).

↑ Office (Outlook) インストール時に Interop.Microsoft.Office.Interop.Outlookレジストリ登録が失敗している。

壊れているのは COM(Interop.Outlook.Application)だけで OUTLOOK.EXE は 問題なく動くので この問題の発見されずらい

https://stackoverflow.com/questions/25437870/operation-failed-queryinterface-call-on-the-com-component-for-the-interface-wit

上記URLにも書いているが 壊れたレジストリを修復する必要がある

レジストリ エディター

コントロールパネルの「プログラムと機能」から Officeを選択し クイック修復すると

この COMエラー問題が解決する可能性もあるらしい

コントロールパネル プログラム Microsoft 365 クイック修復

 

新大阪 御堂筋線

こまち