2016-04-29 15 views
2

私は、Outlookルール処理の最後にVBAサブを一度トリガーする方法を見つけようとしています。私は現在SyncEnd eventsを使用していますが、Outlookを最初に起動したときに正しく動作していないように見えます(SyncEndが発生し、ルールが受信トレイ全体で実行され、メールアイテムはまだ機能していないフォルダ)。ルールの処理が完了したらどうすればいいですか?

"ルール処理完了"イベントをキャプチャする方法はありますか?

+1

ルールを使用する理由は、すべてVBAで行うことができます。 – 0m3r

+0

私はこれを熟考しましたが、その解決策を他のユーザーに移植してもらいたいので、既存のメールルールでできる限りコードを共存させるべきです。 – 4AM

答えて

3

すべてのOutlookイベントは、VBE内で十分に文書化されています。 F2を押してオブジェクトブラウザに入り、ドロップダウンメニューの一番上にあるOutlookライブラリを選択して、使用可能なすべてのイベントを確認します。

ここでは、アプリケーション自体: enter image description here

残念ながら、あなたは後のルールを発生するイベントがないことを実現するために来る使用可能なイベントNewMailNewMailExが発生した「[...]新しいメッセージが受信トレイに到着したとき。クライアントルール処理が行われる前に実行されます。」(https://msdn.microsoft.com/en-us/library/office/ff869202.aspx

しかし、@ Om3rが指摘しているように、VBAは一度に1つのコマンドを1行ずつ実行し、コマンドが完了するのを待っている(次のコマンドに移る)という事実を利用することができます。少なくとも、コマンドを別の方法で処理しない限り、VBAはどのように動作しますか。

したがって、Application.NewMailまたはApplication.NewMailExイベントを使用してルールを実行し、ルールが処理された後に実行するVBAコマンドを追加できます。

enter image description here

私は確かに、これはあなたの問題を解決したいと考えています。これ以上質問があれば教えてください。

+1

良い情報 – 0m3r

+0

クリエイティブなテクニック!それはそれを世話するか、少なくとも私を十分に近づけるべきです。 – 4AM

関連する問題