2017-04-21 13 views
0

Outlookでマクロで問題が発生しました。再開するには、電子メールを受信するたびにマクロが開始されます。次に、それはいくつかの他のサブを実行します、Excelファイルなどを変更します。 Outlookが実行されているときに新しい電子メールを受信すると、すべてが完全に機能します。この問題は、Outlookを開いて複数のメールを同時に受信したときに発生します。Outlookの起動時にAdd.Itemイベントはどのように機能しますか?

マクロには、最初の電子メールでやっていることを終了するのに十分な時間がなく、次の電子メールで既に開始しようとしていると思います。

電子メールごとにマクロを実行するために、次の電子メールをサスペンド状態に保つ方法はありますか?それとも別の解決方法がありますか?

ありがとうございます。

PS:コードを提供することはできますが、それは非常に長くなります。

+1

どこでクラッシュするのかデバッグしましたか?それはいつも同じ行ですか?あなたはそれがクラッシュする場所に投稿することができます – Seb

+1

私は、コードを見て、 "問題"についての詳細を得る必要があると思います(それは誤りですか? –

+0

[MCVE](http://stackoverflow.com/help/mcve)をお読みください。 – Rdster

答えて

0

Outlookを開いて複数のメールを同時に受信すると問題が発生します。

ApplicationクラスのNewMailExイベントは、Microsoft Outlookによって処理され、受信したすべての項目に一度解雇です。アイテムは、MailItem、MeetingItem、またはSharingItemなど、いくつかの異なるアイテムタイプのいずれかになります。 EntryIDsCollection文字列には、その項目に対応するエントリIDが含まれています。

NewMailExイベントは、新しいメッセージが受信トレイに到着し、クライアントルール処理が発生する前に発生します。 EntryIDCollection配列で返されたEntry IDを使用して、NameSpace.GetItemFromIDメソッドを呼び出してアイテムを処理することができます。

Outlookの起動時にVBAマクロが有効で、実行が許可されていることを確認します。 Outlookのセキュリティセンターの設定を確認します。

関連する問題