実現したいこと
outlook vbaで分類項目を変更してメールを保存したい
発生している問題・分からないこと
分類項目を変更して、メールを保存しようとするとエラーが表示されます。
分類項目の変更は、メール受信したイベントで行っています。
エラーメッセージ
error
1メッセージが変更されたために、機能は実行できません 2とエラーメッセージが表示されます
該当のソースコード
outlook
1Private Sub Application_NewMailEx(ByVal EntryIDCollection As String) 2Dim myItem As Outlook.Items 3Dim objId As Object 4 5Set myNamespace = GetNamespace("MAPI") 6Set objId = myNamespace.GetItemFromID(EntryIDCollection) 7 8objId.Categories = "test" 9objId.Save 10 11End Sub
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
エラーメッセージで調べましたが、解決する内容が見つかりませんでした
補足
※デバッグしたところ、エラーになる場合とならない場合がありました。
おおよそですが、4割ぐらいがエラーになっていました。メールは、大量の受信する場合もあって、仕分けルールも大量にあります。
application_NewMailexのイベントで、分類項目を変更していますが、その後、仕分けルールで格納フォルダを変更していたりとしています。なので、分類項目を保存する前に、仕分けルールによってメッセージが変更されて保存ができないということはありますでしょうか。
> application_NewMailexのイベントで、分類項目を変更していますが、
> その後、仕分けルールで格納フォルダを変更していたりとしています。
> なので、分類項目を保存する前に、仕分けルールによってメッセージが
> 変更されて保存ができないということはありますでしょうか。
Application.NewMailEx イベント (Outlook):
https://learn.microsoft.com/ja-jp/office/vba/api/outlook.application.newmailex
> クライアント コンピューターの設定によっては、新しいメッセージが
> 受信トレイに配信された後に、迷惑メールのフィルター処理や、
> クライアント ルールによって新しいメッセージを受信トレイから
> 別のフォルダーへ移動する処理などが、非同期に実行される場合もあります。
> これらのイベントが発生した後、受信トレイ内のアイテム数が常に 1 項目
> 増加すると想定しないでください。

回答1件
あなたの回答
tips
プレビュー