2017-02-01 15 views
0

ユーザフォームのデータに基づいて電子メールを生成する簡単なコードがあります。これは、複数のマシン間で長い時間のために正しく働いているが、私はマシンを変更したときにそれが突然、次のセクションでCreateItemFromTemplateメソッドで実行時エラー13型の不一致を上投げ始めた:VBA Outlook CreateItemFromTemplateタイプの不一致

Private Sub AcaoEnviar_Click() 
Dim OutlookApp As New Outlook.Application 
Dim EmailKRI As Outlook.MailItem 

Set EmailKRI = OutlookApp.CreateItemFromTemplate(PATH_EMAIL_TEMPLATE) 

コードはまだです問題がローカルであることを示唆しています。私のOutlookライブラリは他のマシンと同じですが、私が知っている唯一の違いは、64ビットシステムと32ビットオフィスで実行していることですが、ほとんどのシステムでは32ビットシステム他は同じ64ビットの設定を持ち、うまく動作します)。 オブジェクトの宣言をOutlook.MailItemからObjectに変更すると、Outlookのプログラムによるアクセスに関する問題がなくなり、いずれの場合でもAntivirusのステータスが有効になると思われる問題を解決するようです。 しかし、なぜ私はこのようなエラーが起こるのか、まだ混乱しています。 そのメールオブジェクトの初期バインディングに戻ることができるソリューションはありますか?

答えて

0

CreateItemFromTemplateがMailItemオブジェクト以外のものを返すと、そのエラーが発生します。あなたは、OFTファイルが通常のメールアイテムのものであると確信していますか? テストとして、EmailKRIをジェネリックなObejctとして宣言し、実行時にEmailKRI.Classプロパティの値をチェックします。通常のMailItemオブジェクトでは43(OlObjectClass.olMail)になっています。

+0

はい、私はそのテストを行いました.EmailKRIはObject/MailItem型を返し、.classはolMailです。 –

+0

実行時にOutlookタイプライブラリに問題があるとしか示唆できません... –

関連する問題