win32comを使ってOutlookを自動化した際にエラーが発生した。
自分のパソコンでテストした時は問題なく動作したが、他部署にexeファイル化して渡したところ
com_error: (-2147221005, 'クラス文字列が無効です', None, None)
というエラーが表示された。
アプリケーションを読み込む部分でエラーが発生している
import win32com.client
outlook = win32com.client.Dispatch("Outlook.Application")
色々と調べると
- bit数が違う
- Outlook.exeがローカルに保存されていない
この2点が問題ではないかと書いてあったが、どちらも問題はなかった。
結論
WindowsのスタートメニューからOutlookが消えていた。
どうやらローカルに保存されているだけでは読み込んでくれない模様。
設定のアプリと機能からOfficeをクイック修復をしたところエラーが解消した。